r4i*_*id4 2 json ios swift alamofire
我正在连接到本地主机上的服务器以获取一些数据。返回到此请求的数据是 JSON,在Postman上正确显示了 JSON,但是当我使用 iOS 时,Alamofire 返回一个错误:
responseSerializationFailed(Alamofire.AFError.ResponseSerializationFailureReason.jsonSerializationFailed(Error Domain=NSCocoaErrorDomain Code=3840“垃圾在最后。” UserInfo={NSDebugDescription=垃圾在最后。}))
有问题的 JSON 是:
{
"name": "TestName",
"surname": "TestSurname"
}
Run Code Online (Sandbox Code Playgroud)
我不明白的是,如果我强制我的服务器以字符串的形式返回 json,那么就像
"{"name": "TestName after update","surname": "TestSurname"}"
Run Code Online (Sandbox Code Playgroud)
Alamofire 不会抱怨并正确解析它。那个怎么样?我认为指定参数responseJSON它会反过来工作。
Alamofire.request("http://192.168.1.4:8080/user/abcdf").validate().responseJSON { response in
switch response.result {
case .success:
// DO stuff
case .failure(let error):
print(error)
}
}
Run Code Online (Sandbox Code Playgroud)
这意味着您的 API 响应字符串不是正确的 JSON。确保您的响应是有效的 JSON。就我而言(如下),JSON 字符串有一些破坏了 JSON 的 HTML 字符。
如果您使用的是 Alamofire,请将 .responseJSON 更改为 .responseString 并验证响应结构是有效的 JSON。
注意:如果您使用 Postman,您可能不会注意到 JSON 响应中多余的不需要的字符。您需要将响应类型从“Pretty”更改为“Raw”以观察这一点。
| 归档时间: |
|
| 查看次数: |
2380 次 |
| 最近记录: |