像往常一樣,你需要從JSON每個屬性映射到一個字段+吸氣的Java類:
static class User {
String name;
Map<String, Boolean> friends;
Map<String, Boolean> widgets;
public User() { }
public String getName() { return name; }
public Map<String, Boolean> getFriends() { return friends; }
public Map<String, Boolean> getWidgets() { return widgets; }
@Override
public String toString() {
return "User{" +
"name='" + name + '\'' +
", friends=" + friends +
", widgets=" + widgets +
'}';
}
}
我真的只是跟着從Firebase guide on reading data on Android這些指令:
我們」將創建一個代表博客文章的Java類。像上次一樣,我們必須確保我們的字段名稱與Firebase數據庫中的屬性名稱相匹配,併爲該類提供默認的無參數構造函數。
然後你就可以加載像這樣的信息:
Firebase ref = new Firebase("https://stackoverflow.firebaseio.com/34882779/users");
ref.addListenerForSingleValueEvent(new ValueEventListenerBase() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
for (DataSnapshot userSnapshot: dataSnapshot.getChildren()) {
System.out.println(userSnapshot.getKey()+": "+userSnapshot.getValue(User.class));
}
}
});
有了這個輸出:
brinchen:用戶{名= '布林陳',朋友= {mchen =真, hmadi = true},widgets = {one = true,three = true,two = true}}
hmadi:User {name ='Horace Madi',friends = {brinchen = true},widgets = {one = true ,two = true}}
mchen:用戶{名= '瑪麗陳',朋友= {brinchen =真},窗口小部件= {一個= TRUE,三=真}}
非常感謝您的詳細解釋,你能不能請進一步解釋爲什麼我們需要重寫toString()?是否因爲對象包含具有列表的子項?我是初學者,感謝您的解釋。以前我認爲需要使用它來包含一個列表。 '列表<地圖<字符串,布爾>>朋友'然後我沒有綁定到輸入錯誤。 –
不需要重寫'toString()',只是它使得日誌輸出更具可讀性。下一次當你有代碼不起作用時:在你的問題中發佈代碼。它會減少下/收票。 –
好的指出,謝謝你的建議:) –