【问题标题】:Parse JSON without key in swift?无需密钥即可快速解析 JSON?
【发布时间】:2016-06-12 16:04:38
【问题描述】:

如何在方括号前没有键的情况下解析这个数组?

[
    {
        "id": 2,
        "model": "RAV 4",
        "brand": "Toyota"
    },
    {
        "id": 1,
        "model": "A6",
        "brand": "Audi"
    }
]

有一个similar question,但适用于Android。

【问题讨论】:

  • json 确实有键,它只是一个 json 数组。循环并解析它
  • 数组是通过索引访问的,数组中有两个项目,索引 0 处为id = 2 的字典,索引1 处为id = 1 的字典。只需枚举数组即可。
  • @kye 这是一个字典数组,而不是 json 数组。你不需要循环和解析。
  • @rmaddy 感谢您的正确
  • @JLT JSON 是数据的文本表示。数组是一个列表。字典是键值对的集合。碰巧的是,JSON 数据由数组和字典组成,其结构可能适合数据。问题中提供的 JSON 数据恰好是一个字典数组。没有人会称它为 JSON 数组。

标签: ios json swift parsing


【解决方案1】:

只需像往常一样使用 NSJSONSerialization 解析它,并将结果转换为 [String:AnyObject] 字典的数组。

所以,类似:

if let json = (try? NSJSONSerialization.JSONObjectWithData(yourLoadedNSData, options: NSJSONReadingOptions(rawValue: 0))) as? [[String : AnyObject]] {
    print(json.count) // Should be 2, based on your sample json above
}

【讨论】:

    【解决方案2】:

    Swift 3 更新

    if let json = (try? JSONSerialization.jsonObject(with: data!, options: JSONSerialization.ReadingOptions(rawValue: 0))) as? [String] {
    // do stuff here
    }
    

    以防万一:)

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2014-10-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2020-12-05
      相关资源
      最近更新 更多