Swift Parse JSON 错误:没有与键 CodingKeys 关联的值(stringValue: \"_source\
Posted
技术标签:
【中文标题】Swift Parse JSON 错误:没有与键 CodingKeys 关联的值(stringValue: \\"_source\\【英文标题】:Swift Parse JSON Error : No value associated with key CodingKeys(stringValue: \"_source\Swift Parse JSON 错误:没有与键 CodingKeys 关联的值(stringValue: \"_source\ 【发布时间】:2019-03-07 02:39:47 【问题描述】:我正在尝试解析以下 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 信息是一个数组吗?我怎样才能解析这些信息?
【问题讨论】:
Swift : The data couldn’t be read because it isn’t in the correct format的可能重复 【参考方案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)
【讨论】:
你能写出完整的代码来调用上面的json吗?它是带有 Post 方法的 REST Api 将 json 添加为文本而不是图像 drive.google.com/file/d/1V25FAlCQRYNKVAp695SFOzQlLFO8AsIA/… 我用你的数据检查了这段代码,它工作正常。检查您收到的数据。添加错误日志和 api 响应以获得更多帮助 哦,感谢您的努力。Error dataCorrupted(Swift.DecodingError.Context(codingPath: [], debugDescription: "The given data was not valid JSON.", underlyingError: Optional(Error Domain=NSCocoaErrorDomain Code=3840 "Unable to convert data to string around character 2272." UserInfo=NSDebugDescription=Unable to convert data to string around character 2272.)))
这是错误以上是关于Swift Parse JSON 错误:没有与键 CodingKeys 关联的值(stringValue: \"_source\的主要内容,如果未能解决你的问题,请参考以下文章