我正在尝试解析以下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 \”)。“,底层错误:nil))
这是由于json信息是数组吗?如何解析此信息?
答案 0 :(得分:1)
您的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)
}