使用Swift 5读取Json数组

问题描述 投票:0回答:1

在我进行api调用后,我有一个以下json

[{"breeds":
[{"weight":{"imperial":"7 - 14","metric":"3 - 6"},"id":"ebur","description":" Something ","child_friendly":4,}]
,"url":"https://cdn2.thecatapi.com/images/YOjBThApG.jpg","width":2838,"height":4518}]

如您所见,存在嵌套的数组,并且此api调用的输出我想获取Idurl。我像这样处理我的dataTask输出

let jsonResponse = try? JSONSerialization.jsonObject(with: data!, options: [])
guard let jsonArray = jsonResponse as? [[String: Any]] else {
                          return
                    }

所以我可以毫无问题地访问URL print(jsonArray[0]["url"]),我也可以进行jsonArray[0]["breeds"]。但是,我无法执行jsonArray[0]["breeds"]["decription"]jsonArray[0]["breeds"]["id"]。因为我收到以下错误Value of type 'Any?' has no subscripts,所以我怀疑问题出在[[String: Any]]中。我如何将我的jsonResponse转换更改为数组以获取正确的调用输出

arrays json swift nsarray swift5
1个回答
0
投票

您必须转换任何下标的值

if let breeds = jsonArray.first?["breeds"] as? [[String:Any]],
   let description = breeds.first?["description"] as? String {
     print(description)
}
© www.soinside.com 2019 - 2024. All rights reserved.