這是我的JSON嵌套DB的樣子:檢索火力地堡數據庫的值,嵌套數據
它是一種pets
根具有多個唯一的ID。然後每個ID代表一個有一些屬性的寵物,其中一些(如feedingList
和walkingList
)也包含更多代表進餐/散步的值以及它們的時間和完成布爾值。
我已經在Swift中編寫代碼來檢索一些值,但我遇到問題達到那些fList
和wList
。
func getPetInfo() {
let refMeals = reff.child("pets")
refMeals.observe(.value, with: { (snapshot) in
if let snapCast = snapshot.value as? [String:AnyObject]{
for snap in snapCast{
if self.currentUser.pets.contains(snap.key) {
if let x = snap.value["name"] as? String{
self.tempPet.name = x
print(x)
}
if let y = snap.value["type"] as? String{
//self.tempPet.type = y
print(y)
}
if let z = snap.value["age"] as? Int{
//self.tempPet.age = z
print(z)
}
print(snap.value["fList"])
if let w = snap.value["fList"] as? [String:AnyObject]{
for snippete in w {
if let a = snippete.value["time"] as? String{
//self.tempPet.feedingList.append(a)
print(a)
}
if let b = snippete.value["doneForToday"] as? Bool{
//self.isItDoneForToday.append(b)
print(b)
}
}
}
if let r = snap.value["wlist"] as? [String:AnyObject]{
for snippete in r {
if let c = snippete.value["time"] as? String{
//self.tempPet.feedingList.append(a)
print(c)
}
if let d = snippete.value["doneForToday"] as? Bool{
//self.isItDoneForToday.append(b)
print(d)
}
}
}
//self.petArray.append(self.tempPet)
}
}
}
}) { (error) in
print(error.localizedDescription)
}
}
這一切都打印出來好了name
,age
和type
,但是當涉及到這行代碼:
if let w = snap.value["fList"] as? [String:AnyObject]
...
它不讓它並沒有什麼打印出來。你能告訴我我錯了嗎?我顯然無法理解這個JSON樹的值和數組。當我試圖理解什麼是get
並轉換爲什麼時,這是一團糟。提前致謝。
這就是被打印出來:
blasted
cat
3
Optional(<__NSArrayM 0x60800024f000>(
{
doneForToday = 0;
time = "12:00";
}
)
)
看來FLIST和wList是數組不是字典! – iShaalan
你是什麼意思?我的意思是「寵物」(在我的數據庫中的第一張圖片上)以 [字符串是ID:具有更多內容的AnyObject], 作爲字典呈現,我希望那些fList元素表示爲 [字符串是數字:有更多東西的AnyObject] – NikolaM