【问题标题】:How to access nested NSDictionary data from FireBase如何从 FireBase 访问嵌套的 NSDictionary 数据
【发布时间】:2016-10-16 19:13:37
【问题描述】:

我正在运行一个 Xcode 8 / Swift 3 程序从 firebase 数据库中提取数据。我正在将“品牌”添加到“商店”详细信息中。

数据如下所示:

我可以使用以下代码访问所有“根”数据,例如位置和通道。

let storeName = value["StoreName"] as! String
let subThouroughfare = value["subThouroughfare"] as! String
let thouroughfare = value["Thouroughfare"] as! String
let administrativeArea = value["administrativeArea"] as! String

我不确定如何访问嵌入的数据,最终会有一个以上的“品牌”键,其中包含 4 个值的结构如下:

$StoreKey:
    brands:
        $brandKey1:
            Value1: String
            Value2: String
            Value3: String
            Value4: String
        $brandKey2:
            Value1: String
            etc...

到目前为止,我的结构设置如下,我需要从表的品牌部分查询品牌:

var ProductList = [storeStruct]()
struct BrandStruct{
    let BrandKey: String
    let BrandName: String
    let Value1: String
    let Value2: String
    let Value3: String
    let Value4: String
}

获取该数据并将其构造成可用数组以便填充表格的最佳方法是什么?还是我应该继续尝试查询 Firebase,直到我得到可以使用的东西?

感谢您的帮助!

【问题讨论】:

  • 我不知道如何深入了解字典。现在我正在从字典的第一层提取数据,但我不确定如何获取品牌键和值。
  • 用您的实际查询重构和重构您的问题,您的问题不清楚,删除不需要的细节,并包含您的实际 JSON 结构
  • 好的,我想我理解了这个问题。看看我的回答对你有用吗。

标签: arrays swift firebase firebase-realtime-database nsdictionary


【解决方案1】:

首先获取let brands = value["brands"] as! NSDictionary,与您已经在做的完全平行。现在询问brands.allKeys;这是一系列品牌键。对于每个键,您可以请求brands[thisKey] as! NSDictionary,然后您将返回包含在"Val1""Val2""Val3""Val4" 上键入的四个值的字典。 (同样,如果这些键的名称和数量可能不同,allKeys 会告诉您它们是什么。)

【讨论】:

  • 好的,我知道你在用这个去哪里,我似乎正在取得进展。谢谢你的帮助。一旦我完成了我的块的编程,我会通知你。
  • 太好了,谢谢。我试图让它尽可能简单;在现实生活中,我会使用 [String:Any] 而不是 NSDictionary,然后我会使用 keys 来获取密钥,但在这种情况下并不重要。
  • 这成功了。我能够提取所有值并将其添加到数组中。谢谢。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-02-28
  • 1970-01-01
相关资源
最近更新 更多