我在从服务器(它的PHP后端)在iOS应用上对JSON响应进行序列化时遇到了一些麻烦。我的应用程序发送带有适当参数的后请求,对其进行验证,将结果放入数组中并对其进行编码。现在,这不是问题,代码可以正常工作。但是,它们之间的联系。查看下面的PHP代码。
echo json_encode($array)
现在进入xcode,我正在使用alamofire发送请求,如下面的代码所示
Alamofire.request(URL_USER_REGISTER, method: .post, parameters: parameters).responseString { response in
print(response)
}
}
您可以在.responseString中看到它,因为显然如果我使用.responseJSON,它将引发代码= 3480错误,并且我想从自己的响应JSON中获取特定数据。我尝试了其他方法来在线修复此问题,但他们都选择了.responseString选项。
为什么会这样? JSON类型不兼容吗?这有秘密吗?
我只想从JSON响应中获取特定的数据(例如“消息”),当我获取字符串时就无法获取此数据……感谢您的帮助!
我正在使用Alamofire 4.3
答案 0 :(得分:0)
您是否尝试过打印response.value
来检查它是否是有效的JSON?
答案 1 :(得分:0)
尝试执行以下操作,以便Alamofire将通过JSONSerialization
运行响应数据,具体取决于您可以使用json as? [String : Any]
或json as? [[String : Any]]
的JSON响应类型
Alamofire.request(URL, method: .post, parameters: parameters).responseJSON { response in
guard response.error == nil, let json = response.result.value else {
print("Error: \(response.error?.localizedDescription ?? "no content")")
return
}
if let jsonDict = json as? [String : Any] {
print(jsonDict)
} else if let jsonArray = json as? [[String : Any]] {
print(jsonArray)
}
}