无法解析JSON对象iOS Swift

时间:2017-07-11 01:39:04

标签: ios json swift

当我尝试解析JSON对象时,

let json = try? JSONSerialization.jsonObject(with: reportData, options: []) as? [String : Any]

我收到错误说

  

无法使用类型的参数列表调用'jsonObject'   'with :( [String:Any]),options:[Any]'

以下是我从服务器

获取的JSON格式的 reportData
{
    "status": "success",
    "statusCode": 200,
    "message": "Report exists",
    "patientReport": {
        "caseId": "case040784",
        "Observations": "These are test observations",
        "userUid": "MY5FDbl0bgZStAY5Ky6OtYAzbDT2",
        "nextSteps": "Here are my next steps",
        "customerUid": "customerUid",
        "results": {
            "test1": "12",
            "test3": "15",
            "test3": "12"
        }
    }
}

有人可以指导我出错的地方。

2 个答案:

答案 0 :(得分:2)

此功能:

jsonObject(with: Data, options: JSONSerialization.ReadingOptions = [])

需要两个类型为DataJSONSerialization.ReadingOptions的参数。

reportData Dictionary不是Data。因此,您可以在不解析Dictionary的情况下使用它。

答案 1 :(得分:0)

  

Cannot invoke 'jsonObject' with an argument list of type 'with:([String:Any]), options:[Any]'

我认为这可能是我今天看到的最奇怪的事情。

读取此消息时,字面上说reportData的类型为([String: Any]) - 包含单个值[String: Any]的元组。

阅读Creating Tuples For a Single Value后,我发现([String: Any])[String: Any]之间没有区别。

其他用户已经回答了这个问题......你不需要解析已经存在的字典对象,我发现这个元组很有趣。