Swift 3 SwiftyJson 获取未知数组键

Posted

技术标签:

【中文标题】Swift 3 SwiftyJson 获取未知数组键【英文标题】:Swift 3 SwiftyJson get unknown array keys 【发布时间】:2016-11-30 04:49:26 【问题描述】:

我正在获取带有可变数组键/名称的 json。我需要在应用程序中使用此名称。我试过let keyINeed = json["venue"][0].arrayObject,但我得到了零。 "Meeting rooms""exit" 是我需要填充表格的值,但我不能硬编码它们,因为它们可以并且会改变

  "venue": 
            "name": "Home Office",
            "Meeting rooms": [
                "name": "1",
                ],
            "exit": [
                "name": "Back door",
            ]
          

【问题讨论】:

它是因为venue 不是数组而是字典 向我们展示你到目前为止所做的事情。 你需要像json["venue'']["Meeting rooms"].array一样得到它,退出也是一样 但是“会议室”是一个变量,对于其他场所,它可能是“购物中心”,所以我需要做的是获取 2 个数组中每一个的名称,例如 key1 = json[ 0] 和 key2 = json[1] @user3550256 你想得到name 的值对吗? 【参考方案1】:

好的,所以我为任何想要做同样事情的人解决了这个问题

for (key, value) in json["venue"] 

    print("key \(key) value2 \(value)")


【讨论】:

如果您只想要所有键,那么只需if let dic = json["venue"] as? [String:Any] let keys = dic.keys 【参考方案2】:

你应该使用“dictionaryValue”:

所以现在你可以做

let data = json["venue"].dictionaryValue
print(data.keys)

【讨论】:

值得注意的是,这会给你一个无序列表。如果顺序很重要,那么@user3550256 的回答是更好的选择

以上是关于Swift 3 SwiftyJson 获取未知数组键的主要内容,如果未能解决你的问题,请参考以下文章

为啥 SwiftyJSON 无法在 swift 3 中解析数组字符串

将 SwiftyJSON 用于 Swift 3.1 的子数组

如何使用 SwiftyJSON(在 Swift 中)基于 JSON 对象数组创建对象数组?

使用 SwiftyJSON 将 JSON 数组反序列化为 Swift 对象

使用 Alamofire + SwiftyJSON 获取 JSON 数组

如何使用 SwiftyJSON 在 Swift 中解析这个 JSON 对象?