我的 Alamofire 发布请求如下所示:
Alamofire.request("http://...", method: HTTPMethod.post, parameters: parameters, encoding: JSONEncoding.default, headers: nil)
.responseJSON(completionHandler: {(response) in ... })
如果我的参数很简单,一切正常:
let parameters: Parameters = [
"firstName": "John",
"lastName": "Doe"
]
如果我的参数包含 json 对象,我就会遇到问题。
let address: JSON = [
"street": "1234 Fake St",
"city": "Seattle",
"state": "WA"
]
let parameters: Parameters = [
"firstName": "John",
"lastName": "Doe",
"address": address
]
Alamofire 请求没有执行,我的应用程序崩溃了。
最佳答案
我认为这里的问题是 Alamofire 试图将参数编码为 json,而该参数已经是 json 对象。本质上,双重编码会导致应用程序崩溃。
我找到的解决方案是在使用 SwiftyJSON 的 .rawValue
执行请求之前解码 json 参数。
let parameters: Parameters = [
"firstName": "John",
"lastName": "Doe",
"address": address.rawValue
]
关于json - 带有嵌套 JSON 参数的 Alamofire 发布请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41294012/