无法将“__NSArrayM”类型的值转换为“NSDictionary”

时间:2015-11-06 18:42:03

标签: ios json swift nsdictionary

我有一个json。我正在尝试使用该代码解析它。但是它说

  

无法将“__NSArrayM”类型的值转换为“NSDictionary”

do {
    let dataDictionary: NSDictionary = try NSJSONSerialization.JSONObjectWithData(responseObject as! NSData, options: NSJSONReadingOptions.MutableContainers) as! NSDictionary // <------ Error

    if let customerArray = dataDictionary.valueForKey("cart") as? NSArray {
        for js in customerArray {
            let nameArray = js.valueForKey("name")
            let idArray = js.valueForKey("id")
        }
    }
}

感谢您的帮助

2 个答案:

答案 0 :(得分:1)

数据中的根对象是数组,而不是对象(字典)。

您需要根据反序列化的对象动态决定如何处理JSON。

答案 1 :(得分:1)

它告诉你的是你正在解析的JSON对象不是字典,它是一个数组。因此,如果您更改它以便将其值视为数组而不是字典,那么您将能够迭代它。

您需要重新评估您的JSON,以确保其结构符合您的想法。如果您发布了您尝试解析的JSON,那么它也会很有用,这样我们就可以看到它的结构。

相关问题