Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/json/13.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Swift 3.0:数据转换为JSON[字符串:任意]_Json_Swift_Networking_Nsdata - Fatal编程技术网

Swift 3.0:数据转换为JSON[字符串:任意]

Swift 3.0:数据转换为JSON[字符串:任意],json,swift,networking,nsdata,Json,Swift,Networking,Nsdata,晚上,我正在尝试创建一个APIClient,但我遇到了一个警告问题: APIClient.swift:53:81:从“数据”转换为不相关类型“[String:Any]”总是失败 在这段代码中,我试图将数据转换为JSON,作为字典[String:Any] 我猜编译器不知道这个强制转换是否可能,所以它会抛出错误,但我很确定它会工作。那么,如何避免这个警告,或者如何编写更安全的代码呢 case 200: do { let json = try JSONSeri

晚上,我正在尝试创建一个APIClient,但我遇到了一个警告问题:
APIClient.swift:53:81:从“数据”转换为不相关类型“[String:Any]”总是失败

在这段代码中,我试图将数据转换为JSON,作为字典
[String:Any]

我猜编译器不知道这个强制转换是否可能,所以它会抛出错误,但我很确定它会工作。那么,如何避免这个警告,或者如何编写更安全的代码呢

case 200:
         do {
            let json = try JSONSerialization.data(withJSONObject: data!, options: []) as? [String : Any]
            completion(json, HTTPResponse, nil)
         } catch let error {
             completion(nil, HTTPResponse, error)
         }
正确的方法是:

do{
让json=try JSONSerialization.jsonObject(使用:data!,选项:[])作为?[String:Any]
}捕获{print(“erromg”)}

多亏了

您使用了错误的方法。在尝试之后,如果没有“?”,编译器可能会抛出一个错误,说“从这里抛出的错误没有得到处理”,将这一行添加到
do{}catch{print(“erromg”)}
Thank You@Andrea