将 NSData 转换为 JSON 对象数组

Posted

技术标签:

【中文标题】将 NSData 转换为 JSON 对象数组【英文标题】:Convert NSData to an Array of JSON objects 【发布时间】: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) 【参考方案1】:

来自 SwiftyJSON GitHub 页面

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

【讨论】:

以上是关于将 NSData 转换为 JSON 对象数组的主要内容,如果未能解决你的问题,请参考以下文章

将 NSDictionary 对象转换为 NSData 对象,反之亦然

将每个具有一个对象的 JSON 对象数组转换为 JSON 对象数组 [关闭]

Angular将json转换为对象数组

将 json 对象数组转换为 tsv (python)

如何将多维数组转换为json对象[关闭]

如何将对象响应对象的猫鼬聚合数组转换为json对象响应