【问题标题】:Convert NSData to an Array of JSON objects将 NSData 转换为 JSON 对象数组
【发布时间】:2017-10-12 06:10:57
【问题描述】:

我正在我的 swift 代码中访问 HTTP GET 方法。此方法返回一个 NSData 变量。该数据本质上只是一个 json 对象数组,如下所示:

[{"author": "meowmeow", "platform": "Google"}, {"author": "adasd", "platform": "Dropbox"}

并存储在可变数据中。

我想将这个 NSData 变量转换成一个 json 对象数组,我可以轻松访问,但不知道如何使用 swifty json 执行此操作。

我尝试了以下方法:

let jsonString = NSString(data: data! as! Data, encoding: String.Encoding.utf8.rawValue)

但是当我这样做之后:

 var jj = JSON.init(parseJson: jsonString!)
        for j in jj {
            print(j)
            print("------")
}

什么都没有打印出来,这意味着 JSON.init 方法没有成功解析字符串并返回一个可以循环的数组。如何将 NSData 转换为我可以访问的 JSON 对象数组:

print(jj[0]["author"])

【问题讨论】:

  • 你使用的是 Swift 还是 Objective-C? Swift 中的 NSURLSession API 返回数据而不是 NSData
  • 在描述中发布您的网络请求代码
  • 为什么在 Swift 中使用 NSStringNSData?不要那样做。原生 Swift 中的相同代码显着缩短(并且更高效):let jsonString = String(data: data!, encoding: .utf8)

标签: json swift parsing swifty-json


【解决方案1】:

来自 SwiftyJSON GitHub 页面

let json = JSON(data: data) //use this method
for dict in json {
  //do the stuff
}

【讨论】:

    猜你喜欢
    • 2012-07-21
    • 2020-10-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-01-06
    • 2018-09-12
    相关资源
    最近更新 更多