【发布时间】:2021-10-24 13:11:41
【问题描述】:
目前我正在尝试使用嵌套数组解码 JSON。嵌套数组可以在其中包含一些对象的随机数。我尝试解码它,但结果它返回错误
CodingKeys(stringValue: "itenaries", intValue: nil),
debugDescription : "Expected to decode Array<Any> but found a dictionary
示例 JSON 数据
{
"itenaries": {
"days":
[
[
{
"itenary_id":0,
"itenary_location_name":"Batu Caves Temple"
}
],
[
{
"itenary_id":0,
"itenary_location_name":"KL Tower "
},
{
"itenary_id":1,
"itenary_location_name":"KL Forest Eco Park"
}
]
]
}
}
我的结构
struct Itenaries : Codable {
let itenaries : [[Days]]
}
struct Days : Codable {
let itenary_id : Int
let itenary_location_name : String
}
解码实现
let decoder = JSONDecoder()
let itenary = try decoder.decode(Itenaries.self, from: fileData)
print(itenary.itenaries[0][0].itenary_id)
【问题讨论】:
-
你的结构是错误的。使用QuickType.io
-
错误信息说明了一切,它是字典而不是数组!所以更像
let itenaries : [String: [[Days]]] -
哦,我的错,我没有意识到我没有中间结构 @Paulw11 谢谢!
-
感谢@JoakimDanielson 的提醒,感谢!
-
到目前为止,我们只有四个相同的答案……
标签: ios arrays json swift decode