2016-08-01 41 views
0

我一直在环顾四周,学习JSON一点点。我认为用简单的东西开始学习会很好,但事实似乎并非如此。我正在尝试做JSON数据库。例如它有品牌名称,每个品牌都有自己的产品和一些信息。我已经做了这样的这实际上是更长的时间:完美的JSON结构

{ 
    "Snuses": { 
    "Brands": { 
     "CATCH": [ 
     { 
      "Products": "CATCH EUCALYPTUS WHITE LARGE", 
      "nicotine": "8.0" 
     } 
     ] 
} 

我现在用的火力地堡解析“品牌”喜欢“俘获”等。但我不能。

在SWIFT我试图做这样的:

override func viewDidLoad() { 
    super.viewDidLoad() 
    ref = FIRDatabase.database().reference() 
    ref.observeSingleEventOfType(.Value, withBlock: { snapshot in 

     self.ref = FIRDatabase.database().reference().child("Snuses").child("Brands") 

     self.ref.observeEventType(.Value, withBlock: { snapshot -> Void in 
      for brands in snapshot.children { 
       print(brands) 
      } 
     }) 

    }) 
} 

如何先拿到参考品牌?以及如何分开存储品牌列表?

有些聪明人告诉我这样做不正确,但我不知道JSON结构有什么问题。我怎样才能把它弄平?

我把文档也写成红色,说明如何做到这一点最好,但是对于互相了解有点小。你能指点我正确的方向吗?

+0

意味着你希望所有的品牌名称seperately ???? –

+0

@ EICaptainv2.0我其实不知道。这就是我困惑的原因。聊天中的一个人告诉我,我必须这样做,但我不明白这一点,这就是我在这里问的原因。 –

+0

你能解释一下你真正想要做什么......所以我可以帮你 –

回答

1

您需要做的仅仅allKeys摆脱扣allKeys

let ref = FIRDatabase.database().reference().child("Snuses").child("Brands") 

    ref.observeSingleEventOfType(.Value, withBlock: { (snapshot) in 
     if snapshot.exists() { 
      if let allProducts = (snapshot.value?.allKeys)! as? [String]{ 
       self.snusBrandsArray = allProducts      
       self.productstable.reloadData() 
      } 
     } 
    })