我的swift应用程序无法将NSData转换为Json

时间:2016-05-10 17:36:10

标签: ios json swift nsdata nsjsonserialization

我试图通过这样做将NSData转换为Json:

localhost:49801

这是getJSON方法

    let jdata = getJSON("https://api.myjson.com/bins/16j2i")

    do {
        let json = try NSJSONSerialization.JSONObjectWithData(jdata, options: []) as! [String: AnyObject]
        print(json)
    } catch {
        print("\(error)")
    }

错误表示无法将“_NSCFArray”类型的值转换为“NSDictionary”。有任何想法吗?请

3 个答案:

答案 0 :(得分:1)

JSON的根元素是数组而不是字典(您的格式类似于[{...},{...}])。要修复此错误,您需要将解析代码更改为:

let json = try NSJSONSerialization.JSONObjectWithData(jdata, options: []) as! [[String: AnyObject]]

答案 1 :(得分:0)

let responseString = NSString(data: data!, encoding: String.Encoding.utf8.rawValue)
let convert_array = responseString?.description
// Convert server json response to NSDictionary
do {
    if let convertedJsonIntoDict = try JSONSerialization.jsonObject(with: data!, options: []) as? NSArray {
       print(convertedJsonIntoDict)
    }

答案 2 :(得分:-1)

let data = text.data(using: String.Encoding.utf8)
  

让json =尝试JSONSerialization.jsonObject(带:data,options:.mutableContainers)为? [字符串:任何]

     

适用于Swift 3.1&amp ;;斯威夫特4