【发布时间】:2017-05-04 20:16:02
【问题描述】:
我正在尝试使用Alamofire(4.0 版)进行 api 调用以提交一些数据。我遇到的问题是,在拨打电话时,我收到来自服务器的响应,即 JSON 数据的格式无效。
有没有办法在 Alamofire 中检查数据数据是否被正确序列化?
我已经尝试了 StackOverflow 上当前的许多解决方案,但找不到解决方案。感谢您的帮助。
这应该是请求正文的格式:
{
"reference_id": "Test001",
"data": {
"type": "step",
"data": {
"2015-08-02": 8574
}
}
}
我的 Swift 代码:
let params: [String:Any] = [
"reference_id": "someName",
"data": [
"type" : "step",
"data": [
"2015-08-02": 8574
]
]
]
print(params)
if let userToken = userToken {
let request = Alamofire.request(url+"API.php?Action=SaveHealthData", method: .post, parameters: params, encoding: JSONEncoding.default).responseString(completionHandler: { response in
print(response)
})
}
我得到的错误是:
警告:json_decode() 期望参数 1 为字符串,数组在 /var/www/html/API/SaveHealthData.php 中的第 8 行
{“错误”:“数据不是有效的 json 格式”}
【问题讨论】:
-
从 let params: [String:Any] 中移除 [String:Any] 并仅使用 let params = [your value]
-
是的,不幸的是,swift需要以这种方式声明类型