【发布时间】:2020-07-13 22:11:44
【问题描述】:
我无法将响应快速解析为可行的对象。
基本上,这是我得到的响应(用于查看目的的简化数据)
"[{\"CO2\":0,\"Places\":[{\"Name\":\"RT(Esc. Sec.)\",\"Code\":\"ST_RT\",\"Type\":0,\"CoordX\":41.176750183105469,\"CoordY\":-8.5490522384643555,\"Provider\":\"ST\",\"Lines\":null},{\"Name\":\"Esc.Sec RT\",\"Code\":\"ST_RT2\",\"Type\":0,\"CoordX\":41.175251007080078,\"CoordY\":-8.54929256439209,\"Provider\":\"ST\",\"Lines\":null},{\"Name\":\"SM\",\"Code\":\"ST_SM\",\"Type\":0,\"CoordX\":41.173740386962891,\"CoordY\":-8.5474367141723633,\"Provider\":\"ST\",\"Lines\":null}],\"Direction\":\"R\"}]"
收到回复后,我会执行以下操作:
let dict = try! JSONSerialization.jsonObject(data: responseData!, options: .allowFragments) as? [[String:Any]] ?? [[String:Any]]()
结果如下字典(我很抱歉这张图片,但我无法打印屏幕。加上这 44 个元素是Places 的总数,但我已经简化了响应我上面说的字符串)
我的问题是,我无法访问每个 Place 字典。我尝试遍历dict["Places"],但这似乎不起作用,我不明白,因为它是NSArray。
我可能遗漏了一些简单的东西,但我似乎无法弄清楚。
欢迎任何帮助。
谢谢!
【问题讨论】:
-
放弃 JSONSerialization 并使用 Codable 进入现实世界。
-
我在其他情况下使用 codable,但我不能在这里使用它。它抛出一个错误,说它期望 Dictionary 但得到了一个数组。
-
@kyrers 你可以使用
Root.self而不是[Root].self
标签: swift xcode nsarray nsdictionary nsjsonserialization