【发布时间】:2020-06-03 19:06:05
【问题描述】:
尽管有很多关于嵌套 json 解码的文章,但我正在努力阅读以下一篇:
来自 json 的样本:
{
"00AK": {
"icao": "00AK",
"iata": "",
"name": "Lowell Field",
"city": "Anchor Point",
"state": "Alaska",
"country": "US",
"elevation": 450,
"lat": 59.94919968,
"lon": -151.695999146,
"tz": "America\/Anchorage"
},
"00AL": {
"icao": "00AL",
"iata": "",
"name": "Epps Airpark",
"city": "Harvest",
"state": "Alabama",
"country": "US",
"elevation": 820,
"lat": 34.8647994995,
"lon": -86.7703018188,
"tz": "America\/Chicago"
},
"00AZ": {
"icao": "00AZ",
"iata": "",
"name": "Cordes Airport",
"city": "Cordes",
"state": "Arizona",
"country": "US",
"elevation": 3810,
"lat": 34.3055992126,
"lon": -112.1650009155,
"tz": "America\/Phoenix"
},
....
}
我首先使用以下结构映射机场细节:
struct Airport : Codable {
var icao:String
var iata:String
var name:String
var city:String
var state:String
var country:String
var elevation: Double
var lat: Double
var lon: Double
var tz: Double
enum CodingKeys : String, CodingKey {
case icao
case iata
case name
case city
case state
case country
case elevation
case lat
case lon
case tz
}
}
但我卡住了 - 无法找出如何映射机场代码(00AK、00AL、00AZ)的“母亲”结构以及如何在此处解析的解码数据中查找:
let decodedData = try JSONDecoder().decode(AirportsStructToBeCreated.self,
from: jsonData)
(例如如何查找“00AZ”的“海拔”)
【问题讨论】:
标签: json swift xcode jsondecoder