2016-10-04 4 views
2

swiftyJSON отлично подходит для разбора Firebase. То, что хотелось бы в итоге, это две возможности:Firebase и swiftyJSON синтаксический анализ

imageName для одного индивидуального идентификатора и список imageName s для всех идентификаторов. JSON Struture:

enter image description here

код, который извлекает JSON в порядке, но не отображает imageName значения:

ref.observe(FIRDataEventType.value) { 
      (snapshot: FIRDataSnapshot!) in 

      let json = JSON(snapshot.value) 
      // print("JSON: \(json)") 

      // PRINT IMAGENAME - NOT WORKING 
      if let imageName = json[12345][0]["imageName"].string { 
       print("imageName: \(imageName)") 
      } 

      // // PRINT IMAGENAME - NOT WORKING 
      let theKeys = json.dictionary!.keys 

      for key in theKeys { 
      let imageName = json[0][0]["imageName"] 
      print("imageName: \(imageName)") 
      } 
} 

Мой конечный результат, чтобы в конечном итоге с ImageUrl для отображения в CollectionView. Кажется, близко, просто не получив правильный формат swiftyJSON. Благодарю.

ответ

3

Сначала я думаю, что вы должны проанализировать свои данные как «путь firebase», я думаю, вы можете назвать это вместо использования SwiftJSON. Это как бы я сделать это «firebase путь»

import FirebaseDatabase 

    class ViewController: UIViewController { 

     var ref: FIRDatabaseReference! 

    override fun viewDidLoad() { 
     super.viewDidLoad() 

     ref = FIRDatabase.database().reference() 


    } 

    func retrieveData() { 

     ref.child("12345").observe(.childAdded, with { (snapshot) in 

     let dict = snapshot.value as? [String: AnyObject] 

     let imageNamed = dict!["imageName"] as? String 

     print("\(imageNamed)") 
    } 

    } 
} 

Код выше работает хорошо для меня

в SwiftJSON, я не уверен на 100%, если это будет работать, но, возможно, мы могли бы попробовать

let json = JSON(snapshot.value) as? [String: AnyObject] 

if let imageName = json!["12345"][0]["imageName"].string { 

} 

let theKeys = json.dictionary!.keys 

for key in theKeys { 
    let imageName = json[0][0]["imageName"] 
    print("imageName: \(imageName)") 
} 
Смежные вопросы