无法通过POST请求返回的数据进行强制转换或解析

时间:2017-06-01 18:59:23

标签: arrays json swift3 network-programming

我正在开展一个项目,我正在使用POST请求从我的队友设置的AWS服务器返回JSON数据。这就是我的代码 - 非常标准。

let task : URLSessionDataTask = session.dataTask(with: request as URLRequest, completionHandler: { (data, response, error) in
                if let data = data {
                    if let response = try! JSONSerialization.jsonObject(
                    with: data, options: []) as? [String: Any] {

                    let zones = response["body"]! as? [[String: Any]] ?? []

返回的JSON看起来像这样

enter image description here

"区域的内容"在这里不重要。我想要的是区域数组,但它包含在这个名为" body" (我的后端人说,这是AWS默认发送它的方式,所以它不是他可以改变的东西)。我遇到的问题是我目前拥有的那些应该得到区域数组(let zones = response["body"]! as? [[String: Any]] ?? [])的行总是给我空数组(并且没有?? []它给了我nil )。如果我摆脱了类型转换,我得到了区域数组,但它的类型为Any,所以我无法按照我想要的方式解析它。有关如何将区域数组作为数组获取的任何想法,以便我可以解析它吗?

1 个答案:

答案 0 :(得分:1)

您将获得与键"body"关联的值,该值从图像本身是字典而不是数组。使用返回的字典获取与键"zones"关联的值,这是您追求的数组。 HTH