json
形が正しくないですね、以下の様にすることで読み込めます。
※まずjson
の形が正しいかのチェックはしたほうがいいですね。
JSON Editor online
swift
1
2struct Locations: Codable {
3 var plan: [Location]
4
5 struct Location: Codable {
6 var points: Point
7
8 struct Point: Codable {
9 var lat: Double?
10 var lng: Double?
11 var height: Double?
12 }
13 }
14}
15
16var data = """
17{"plan":[
18{"points":{
19"lat":123.111,
20"lng":456.222,
21"height":50.0
22}},
23{"points":{
24"lat":789.888,
25"lng":22.666,
26"height":30.0
27}}]
28}
29""".data(using: .utf8)
30
31// Decode
32let locations = try? JSONDecoder().decode(Locations.self, from: data!)
33if let locations = locations {
34
35 for location in locations.plan {
36 print(location.points.lat)
37 print(location.points.lng)
38 print(location.points.height)
39 }
40}
41
42// Encode
43let point1 = Locations.Location(points: Locations.Location.Point(lat: 123.111, lng: 456.222, height: 50.0))
44let point2 = Locations.Location(points: Locations.Location.Point(lat: 789.888, lng: 22.666, height: 30.0))
45let locations1 = Locations(plan: [point1, point2])
46
47let encoder = JSONEncoder()
48encoder.outputFormatting = .prettyPrinted
49let encoded = try! encoder.encode(locations1)
50print(String(data: encoded, encoding: .utf8)!)
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
退会済みユーザー
2018/06/27 06:50