【发布时间】:2016-10-28 02:36:57
【问题描述】:
我在通过 Alamofire 发送参数时遇到问题。这是服务器期望的 JSON:
{
“users”:[{“_id”:”1234567”}, {“_id”:”665543”}]
}
现在,在我的 Swift 代码中,这就是我尝试构建上述对象的方式:
let parameters = [“users” : users]
return sendRequest(.PUT, url: “example.com", parameters: parameters)
其中 users 是一个数组。这里有更多关于用户是什么的信息(我已经取出了一些其他的继承来简化):
class User : MyBase, CustomStringConvertible {
var name: String
var description : String {
get{
return ["_id" : self._id!].description
}
}
}
class MyBase {
var _id: String?
}
如果我做一个debugPrint(users),这就是我得到的:
[“users”: [["_id": "1234567"], ["_id": "665543"]]]
这是处理 Alamofire 的 sendRequest 方法:
static func sendRequest(method: Alamofire.Method, url: String, parameters: [String: AnyObject]?) {
Alamofire.request(method, url, parameters: parameters as! [String: [User]], encoding: .JSON)
.validate()
.responseObject { (response: Response<User, NSError>) in
switch response.result {
case .Success(let value):
// do something
case .Failure(let error):
// do something else
}
}
}
它在 Alamofire.request 行上抛出的错误是这样的:
Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: 'Invalid type in JSON write (MyApp.User)’
最终,我拥有的是一组用户对象,我需要以上述 JSON 格式将其发送到我的服务器。作为 Swift 的新手,我一直在努力解决这个问题,因此非常感谢任何帮助。
【问题讨论】:
标签: ios json swift swift2 alamofire