Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/drupal/3.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
Arrays Swift 3-如何从包含字符串的索引中读取json输出_Arrays_Json_Swift - Fatal编程技术网

Arrays Swift 3-如何从包含字符串的索引中读取json输出

Arrays Swift 3-如何从包含字符串的索引中读取json输出,arrays,json,swift,Arrays,Json,Swift,我使用api获取一些json信息,下面是一个示例: multimedia: [ { url: "small.jpg" format: "small" }, { url: "medium.jpg" format: "medium" }, { url: "large.jpg" format: "large" } ] 正如您所看到的,多媒体容器有许多不同大小的图像url,我只想读取其中的一个,例如media.jpg的url 我的代码是这样的,首先读取多媒体容器: let ra

我使用api获取一些json信息,下面是一个示例:

multimedia: [
{
  url: "small.jpg"
  format: "small"
},
{
  url: "medium.jpg"
  format: "medium"
},
{ url: "large.jpg"
  format: "large"
}  
]
正如您所看到的,多媒体容器有许多不同大小的图像url,我只想读取其中的一个,例如media.jpg的url

我的代码是这样的,首先读取多媒体容器:

let randomImg = result[random]["multimedia"] as! [[String: AnyObject]]
然后我做了另一个变量,它读取我想要的索引:

let randomImgIndex = randomImg[1]
因此,当我尝试获取最终字符串时,我得到错误:

let finalImgUrl = randomImgIndex[random]["url"] as! String
错误:无法使用“Int”类型的索引为“[String:AnyObject]”类型的值下标


我对swift很陌生,所以我完全迷路了。

随机imgindex已经是理想的字典了

更改:

let finalImgUrl = randomImgIndex[random]["url"] as! String
致:


另一方面,您需要停止使用所有这些
一样运算符。如果数据与预期不符,你的应用程序将崩溃。当您获取无法控制的数据时,请进行防御性编码。

Swift 4具有可解码的功能,这使得类似的操作非常简单。你有什么理由推迟升级到Swift 4吗?我学过使用Swift 3,所以我不得不坚持使用它,当我适应Swift 3时,我对跳到Swift 4没有信心。谢谢,成功了。我会尽量按照这个建议去做,只是在我注意到有些东西不起作用的时候,我才用它?etc有时会修复它,所以我养成了这样做的习惯。
let finalImgUrl = randomImgIndex["url"] as! String