最新消息:20210816 当前crifan.com域名已被污染,为防止失联,请关注(页面右下角的)公众号

[已解决]Swift中如何把HTTP的POST返回的NSData转换为json变量

Swift crifan 3613浏览 0评论
 [背景]
之前已经通过:
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,是这种:
printed nsdata on xcode
不是我要的。我此处希望的是:
将那个NSData变成我所希望的json字符串,
然后把json字符串转换为json变量。
[解决过程]
1.搜:
swift NSData to json string
参考:
去试试:
try NSJSONReadingOptions options
然后对于:
NSJSONReadingOptions此处不能设置为nil
然后对于NSJSONReadingOptions后面此处到底该设置什么参数,不清楚。
2.搜:
NSJSONReadingOptions example
参考:
官网的:
结果完全看不懂三个选项:
MutableContainers,MutableLeaves,AllowFragments
到底是啥意思。。
算了,先去一个个试试:
结果出错了:
3.然后即可获得json字典变量:
got parsed dict value
可以看到打印出来的dict信息了:
xcode printed dictionary value info
[总结]
用:
即可把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变量。

转载请注明:在路上 » [已解决]Swift中如何把HTTP的POST返回的NSData转换为json变量

发表我的评论
取消评论

表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址
86 queries in 0.175 seconds, using 22.05MB memory