Ios Alamofire JSON序列化错误-Swift 2.0
我在通过Alamofire发布JSON时遇到问题。我得到下面的错误。我的参数如前所述-知道我做错了什么吗Ios Alamofire JSON序列化错误-Swift 2.0,ios,json,swift,alamofire,Ios,Json,Swift,Alamofire,我在通过Alamofire发布JSON时遇到问题。我得到下面的错误。我的参数如前所述-知道我做错了什么吗 let parameters: [String: AnyObject] = [ "t": [ "name": "foo", "event": "tap", "ts": NSDate().timeIntervalSince1970 ], "z": [["key":
let parameters: [String: AnyObject] = [
"t": [
"name": "foo",
"event": "tap",
"ts": NSDate().timeIntervalSince1970
],
"z": [["key": "12345"], ["key": "67890"]]
]
Alamofire.request(.POST, "https://myapi.com/test", parameters: parameters, encoding: .JSON)
Error Domain=com.alamofire.Error Code=-6006“无法序列化JSON。输入数据为零或零长度。UserInfo={NSLocalizedFailureReason=JSON无法序列化。输入数据为零或零长度。}
NSDate
不是有效的JSON对象。您需要使用NSDateFormatter,使用许多RFC或ISO规范之一将其转换为字符串(最有可能)。下面是一个ISO8601
日期的示例
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let iso8601String = dateFormatter.stringFromDate(NSDate())
使用此逻辑,首先需要将
NSDate
参数转换为字符串
,然后将字符串
版本添加到参数字典中,Alamofire将从那里处理它。NSDate
不是有效的JSON对象。您需要使用NSDateFormatter,使用许多RFC或ISO规范之一将其转换为字符串(最有可能)。下面是一个ISO8601
日期的示例
let dateFormatter = NSDateFormatter()
dateFormatter.locale = NSLocale(localeIdentifier: "en_US_POSIX")
dateFormatter.dateFormat = "yyyy-MM-dd'T'HH:mm:ssZZZZZ"
let iso8601String = dateFormatter.stringFromDate(NSDate())
使用此逻辑,您首先需要将
NSDate
参数转换为字符串
,然后将字符串
版本添加到参数字典中,Alamofire将从那里处理它。您的字典可以使用NSJSONSerialization
对象在NSData
中轻松转换。您确定在序列化响应JSON时没有收到此错误吗?您的字典可以使用NSJSONSerialization
对象在NSData
中轻松转换。您确定在序列化响应JSON时没有收到此错误吗?