Swift Parse JSON错误:与键CodingKeys(stringValue:\“ _ source \

时间:2019-03-07 02:39:47

标签: json swift alamofire jsonparser

我正在尝试解析以下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 \”)。“,底层错误:nil))

这是由于json信息是数组吗?如何解析此信息?

1 个答案:

答案 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)
   }