Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Json 将字典转换为数组时出现问题_Json_Swift - Fatal编程技术网

Json 将字典转换为数组时出现问题

Json 将字典转换为数组时出现问题,json,swift,Json,Swift,当我使用这行代码时,我的应用程序崩溃 self.cartProducts = responceDictionary!["result"] as! [AnyObject] responceDictionary是JSON数据,我需要将其作为AnyObject存储在数组中 有人能给我指出正确的方向吗?试试这个: guard let cartProducts = responceDictionary?["result"] as? [AnyObject] else { return } self.car

当我使用这行代码时,我的应用程序崩溃

self.cartProducts = responceDictionary!["result"] as! [AnyObject]
responceDictionary
是JSON数据,我需要将其作为
AnyObject
存储在数组中

有人能给我指出正确的方向吗?

试试这个:

guard let cartProducts = responceDictionary?["result"] as? [AnyObject] else { return }
self.cartProducts = cartProducts

如注释中所述,key
result
的值很可能是字典

从远程源接收数据时,避免使用感叹号,并安全地打开选项:

if let responce = responceDictionary, let result = responce["result"] as? [String:Any] {
   print(result)
   // go on extracting data from result
]

无法将字典强制转换为数组,类型不相关。如果对象应该是dictionary,为什么不将其转换为dictionary?您的问题是否与?请添加您的回答格式。正如@vadian所说,如果它是一个字典,你就不能将它转换成数组。@vadian我相信
result
是数组。@VasiliiMuravev如果key
result
的值是数组,为什么代码会崩溃@Minimoore:您收到了什么错误消息?ResponceMedical是一个字典,但值可能是数组。由于[String:Any]和任何对象之间存在冲突,我如何将“result”分配给cartProducts?如果
cartProducts
是一个数组,则无法分配
result
。阅读JSON,您需要从
结果
字典中提取所需的数组,我不明白?我需要
结果
字典中的所有数据,然后您必须将
cartProducts
声明到
[字符串:任意]