Swift Parse JSON错误:没有与键CodingKeys相关的值(stringValue:\“_ source \

问题描述 投票:-2回答:1

我试图解析以下json数据:

enter image description here

下面是我的结构:

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信息是一个数组吗?。我怎么能解析这些信息?

json swift alamofire jsonparser
1个回答
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)
   }
© www.soinside.com 2019 - 2024. All rights reserved.