我试图解析以下json数据:
下面是我的结构:
struct Album: Decodable {
var source: [Sourcet]
enum CodingKeys: String, CodingKey {
case source = "_source"
}
}
struct Sourcet: Decodable {
var nome, endereco, uf, cidade, bairro: String
}
let response = try JSONDecoder().decode(Album.self, from: data)
我继续得到错误:
keyNotFound(CodingKeys(stringValue:“_ source”,intValue:nil),Swift.DecodingError.Context(codingPath:[],debugDescription:“没有与键CodingKeys相关的值(stringValue:\”_ source \“,intValue:nil)(\ “_source \”)。“,underlyingError:nil))
这是由于json信息是一个数组吗?。我怎么能解析这些信息?
你的struct Album
是错误的,你正在解析Album.self
单个对象而不是数组。
试试以下代码:
struct Album: Decodable {
var source: Sourcet // change array to single object
enum CodingKeys: String, CodingKey {
case source = "_source"
}
}
struct Sourcet: Decodable {
var nome, uf : String
}
要解析模型中的json:
do {
let response = try JSONDecoder().decode([Album].self, from: data)
for item in response {
print(item.source.nome)
}
}catch{
print("Error: ",error)
}