【发布时间】:2018-12-07 06:27:09
【问题描述】:
所以我在使用AFNetworking 或使用Alamofire 的任何其他API 调用时从未遇到过这个问题,但是我似乎遇到了问题,基本上我有一个Array of Dictionaries 应该像这样格式化;
[{"value":"1","created_at":"2018-06-26 01:57:14"},
{"value":"4","created_at":"2018-06-26 01:59:44"}]
但是他们是这样通过服务器端的;
[{"value":"4"},{"created_at":"2018-06-26 02:30:11"},
{"value":"4"},{"created_at":"2018-06-26 03:24:41"}]
我尝试创建硬编码参数以使其工作但没有成功,我在哪里出错了伙计们(我知道这可能很愚蠢), 这是硬编码的演示参数;
let dictA = ["value":"2", "created_at":"2018-06-26 04:05:50"]
let dictB = ["value":"4", "created_at":"2018-06-26 05:05:50"]
let params : NSDictionary = ["values":[dictA,dictB]]
tia
//编辑
这是Alamofire 请求;
Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { response in
//Handle response
})
//编辑
我已经通过变通解决了这个问题,由于某种原因,当对象首先使用本机 URLRequest 序列化到正文中时,对象格式正确,然后使用该请求初始化 Alamofire 请求;
var request = URLRequest(url: url)
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try! JSONSerialization.data(withJSONObject: params)
Alamofire.request(request).responseJSON(completionHandler: { response in
//Handle response
})
【问题讨论】:
-
您的服务器是否在您的控制之下?如果不是,您将无法按预期映射您的响应。
-
你能分享你的漏洞代码来获取和解析你的数据吗?
-
正如我在问题中所说,这是硬编码的参数,这正是它使用 Alamofire 发送的方式; Alamofire.request(urlString, method: .post, parameters: params, encoding: URLEncoding.default, headers: headers).responseJSON(completionHandler: { response in //Handle response })
标签: ios json swift dictionary alamofire