[背景]
之前已经通过:
let opt = try HTTP.POST(LOGIN_URL, parameters: params, requestSerializer: JSONParameterSerializer()) //opt.onFinish = { response in opt.start { response in if let err = response.error { print("error: \(err.localizedDescription)") return //also notify app of failure as needed } print("opt finished: \(response.description)") print("response data=\(response.data)")
去获得了response。
然后此处也看到代码解释中说了,对应的data是我所需要的:
/// The body data of the HTTP response. public var data: NSData { returncollectData }
是我所需要的。
其中前面的那个response.description返回的内容中,有我所需要的POST所返回的json数据:
Payload: {"result":1,"msg":"验证成功","data":{“。。。。。。。"},"sessionid":"08631A42B0A69148E7D660ABA3265C9E"}
上述的直接打印出来的data,是这种:
不是我要的。我此处希望的是:
将那个NSData变成我所希望的json字符串,
然后把json字符串转换为json变量。
[解决过程]
1.搜:
swift NSData to json string
参考:
去试试:
然后对于:
NSJSONReadingOptions此处不能设置为nil
然后对于NSJSONReadingOptions后面此处到底该设置什么参数,不清楚。
2.搜:
NSJSONReadingOptions example
参考:
官网的:
结果完全看不懂三个选项:
MutableContainers,MutableLeaves,AllowFragments
到底是啥意思。。
算了,先去一个个试试:
结果出错了:
3.然后即可获得json字典变量:
可以看到打印出来的dict信息了:
[总结]
用:
即可把http的POST所返回的NSData转换为所需要的JSON变量了。
对于JSON指的是SwiftyJSON的话,则可以用:
opt!.start { response in if let err = response.error { //xxxxxx return } let respJsonDict:JSON let decodedJsonDict:JSON = JSON(data: response.data)
去把NSData转换为JSON变量。