【问题标题】:Trying to access key in Nested Array of dictionaries in Swift试图在 Swift 中访问嵌套字典数组中的键
【发布时间】:2016-12-28 13:12:26
【问题描述】:

也许我没有正确表达问题,但我需要访问嵌套在另一个字典数组中的字典数组中的键。我认为我得到的最接近的是

name: dict["name"] as! String,
speciesId: dict["species_id"] as! Int,
identifier: dict["identifier"] as! String,
typeId: dict["forms"]!["item0"]!["type_id"] as! Int

我可以抓取前 3 个变量,但不能抓取最后一个,因为它嵌套在另一个字典数组中。如果有人能指出我获取 type_id 的正确方向。当我尝试时

typeId: dict["type_id"] as! Int

它只是在控制台上返回 nil。

更新:所以从这里的一个答案出发,使用这一行从数组中获取一个 int 是可行的

 formId: (dict["egg_groups"] as! Array<Int>)[0] as Int!

但是当我试图从数组中获取一个字典时,我得到了 EXC_BAD INSTRUCTION

【问题讨论】:

  • 您能分享您的回复吗?或 JSON 或 XML 字符串
  • 好像“forms”是一个数组,以整数格式传递索引而不是“item0”字符串。
  • @DheerajD 我可以查看源代码,但我的计算机上没有可以编辑/复制它的软件。本质上,“forms”是一个数组,其中“item”作为它的字典,“type_id”作为我需要抓取的键
  • @bunty 很抱歉,您能详细说明一下吗?我不明白你的意思
  • 请在下面回答,您可以尝试使用吗?

标签: ios arrays swift dictionary


【解决方案1】:

试试这个并传递正确的索引,因为这里是 0:

let typeId = (dict["forms"] as! Array<Dictionary<String,Any>>)[0]["type_id"]! as Int

【讨论】:

  • 我一直运行到 EXC_BAD_INSTRUCTION 没有控制台错误。我认为它可能返回零?
  • 终于通过将&lt;String,Int&gt; 更改为&lt;String,Any&gt; 使代码工作。更改您的评论以反映这一点,我会将您的答案标记为已接受。谢谢!!
猜你喜欢
  • 1970-01-01
  • 2016-07-10
  • 2015-11-17
  • 2021-07-18
  • 2018-02-09
  • 1970-01-01
  • 1970-01-01
  • 2013-10-06
  • 2021-05-30
相关资源
最近更新 更多