JSON 请求给了我以下结构:
"Name": [{
"@LanguageCode": "xx",
"$": "Cologne - Cologne/Bonn Airport"
}, {
"@LanguageCode": "de",
"$": "Köln - Köln/Bonn Flughafen"
}, {
"@LanguageCode": "pt",
"$": "Colónia"
}, {
"@LanguageCode": "ja",
"$": "ケルン - ケルン / ボン"
}, {
"@LanguageCode": "en",
"$": "Cologne - Cologne/Bonn Airport"
}, {
"@LanguageCode": "it",
"$": "Colonia - Colonia-Bonn Airport"
}, {
"@LanguageCode": "fr",
"$": "Cologne - Cologne/Bonn Airport"
}, {
"@LanguageCode": "es",
"$": "Cologne - Cologne/Bonn Airport"
}, {
"@LanguageCode": "nl",
"$": "Keulen"
}]
有谁知道如何在适合 JSONDecoder 的 Swift Decodable 结构中处理这个问题?
您可以使用CodingKeys
来解码此 json:
struct Message: Codable {
let name: [Language]
enum CodingKeys: String, CodingKey {
case name = "Name"
}
}
struct Language: Codable {
var code: String
var message: String
enum CodingKeys: String, CodingKey {
case code = "@LanguageCode"
case message = "$"
}
}
然后:
do {
let decoder = JSONDecoder()
let object = try decoder.decode(Message.self, from: jsonData)
} catch {
print("(error)")
}