一、Data转JSON对象:
1、原生:
guard let json = try? JSONSerialization.jsonObject(with: response.data, options: []) else {
return
}
2、SwiftyJSON:(GitHub地址):
do {
// data转化为JSON
let jsonData = try JSON(data: response.data)
print(jsonData)
} catch {
failClosure("解析失败")
}
二、JSON对象转Data:
let data = try? JSONSerialization.data(withJSONObject: json, options: [])
三、Data转JSON字符串:
1、原生:
let jsonStr = String(data: response.data, encoding: String.Encoding.utf8)
2、SwiftyJSON:
let jsonStr = JSON(response.data).description
四、JSON字符串转Data:
let data = jsonStr?.data(using: String.Encoding.utf8, allowLossyConversion: false)
五、JSON字符串转JSON对象:
JSON字符串 ----> Data ----> JSON对象
上述有写到try和try? ,下面简单说明一下:
1、try 标准异常处理方式,需要结合do catch;
2、try? 表示语句可能发生错误,也可能没有错误,如果发生错误,则返回nil,如果没有错误,会返回一个可选值;
3、try! 表示该语句一定没有错误,如果发生错误,则崩溃处理,一般不建议使用。
网友评论