gpt4 book ai didi

swift - 带反斜杠的 JSON 编码

转载 作者:IT王子 更新时间:2023-10-29 05:41:34 27 4
gpt4 key购买 nike

我正在使用 Alamofire 和 SwiftyJSOn 来解析 JSON 输出。它工作得很好,但是有些站点提供带有转义输出的 json。我像下面这样使用 Alamofire

    Alamofire.request(.POST, url, parameters: param, encoding: .JSON)
.responseJSON { (req, res, json, error) in
var json = JSON(json!)

网站给我带有转义字符串的 JSON 结果,因此 SwiftyJSON 无法对其进行解码。我怎样才能在下面转换

{
"d": "{\"UniqeView\":{\"ArrivalDate\":null,\"ArrivalUnitId\":null,\"DeliveryCityName\":null,\"DeliveryTownName\":null},\"ErrorMessage\":null,\"Message\":null,\"IsFound\":false,\"IsSuccess\":true}"
}

类似于

{
"d": {
"UniqeView": {
"ArrivalDate": null,
"ArrivalUnitId": null,
"DeliveryCityName": null,
"DeliveryTownName": null
},
"ErrorMessage": null,
"Message": null,
"IsFound": false,
"IsSuccess": true
}
}

最佳答案

// This Dropbox url is a link to your JSON
// I'm using NSData because testing in Playground
if let data = NSData(contentsOfURL: NSURL(string: "https://www.dropbox.com/s/9ycsy0pq2iwgy0e/test.json?dl=1")!) {

var error: NSError?
var response: AnyObject? = NSJSONSerialization.JSONObjectWithData(data, options: NSJSONReadingOptions.allZeros, error: &error)
if let dict = response as? NSDictionary {
if let key = dict["d"] as? String {

let strData = key.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false)
var error: NSError?
var response: AnyObject? = NSJSONSerialization.JSONObjectWithData(strData!, options: NSJSONReadingOptions.allZeros, error: &error)

if let decoded = response as? NSDictionary {
println(decoded["IsSuccess"]!) // => 1
}

}
}
}

我想您必须解码两次:包装对象及其内容。

关于swift - 带反斜杠的 JSON 编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29214787/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com