无法将类型“__NSArrayM”的值转换为 'NSDictionary'
Could not cast value of type '__NSArrayM' to 'NSDictionary'
我有一个 json.I 我正在尝试用 code.But 来解析它
Could not cast value of type '__NSArrayM' to '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")
}
}
}
感谢您的帮助
你的数据中的根对象是数组,不是对象(字典)。
您需要根据反序列化对象动态决定如何处理您的 JSON。
它告诉您的是,您正在解析的 JSON 对象不是字典,而是数组。因此,如果您更改它以便将其值视为数组而不是字典,您将能够对其进行迭代。
您需要重新评估您的 JSON 以确保它的结构符合您的想法。如果您发布了您尝试解析的 JSON 以便我们也可以看到它的结构,这也会很有用。
我有一个 json.I 我正在尝试用 code.But 来解析它
Could not cast value of type '__NSArrayM' to '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")
}
}
}
感谢您的帮助
你的数据中的根对象是数组,不是对象(字典)。
您需要根据反序列化对象动态决定如何处理您的 JSON。
它告诉您的是,您正在解析的 JSON 对象不是字典,而是数组。因此,如果您更改它以便将其值视为数组而不是字典,您将能够对其进行迭代。
您需要重新评估您的 JSON 以确保它的结构符合您的想法。如果您发布了您尝试解析的 JSON 以便我们也可以看到它的结构,这也会很有用。