json - Swift Parse JSON 错误:没有与键 CodingKeys 关联的值(stringValue: \"_source\
问题描述
我正在尝试解析以下 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: "No value associated with key CodingKeys(stringValue: \"_source\", intValue: nil) (\ "_source\").",基础错误: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)
}
推荐阅读
- php - 如何在加载js之前使用来自url的值设置cookie
- sql - 如果它与当前值相同,则忽略最后一个值
- python - 删除类方法python生成的所有变量(类)
- asp.net - 我可以将会话值传递给变量,然后将其保存到另一个 guid 类型变量吗
- latex - sty 颜色缺失问题 Beamer Poster JHR
- go - 格式字符串中没有占位符
- c# - Xamarin 选项卡式页面选项卡没有填满空间?
- vb.net - 如何以编程方式向我的 Windows 窗体添加一个按钮,单击该按钮将打开一个宏?
- jpa-2.1 - JPQL CreateQuery 与 SYSDate 比较
- javascript - 对数据库的 AJAX 请求