我第一次使用fire base时,当我尝试使用fire base rest apis检索数据时,我得到这样的响应,
{
"-JQjT7REctmFfOAoGI6d" : {
"age" : "23",
"name" : "xxx",
"id" : "1"
},
"-JQjT7RGTUdl1FTrjed6" : {
"age" : "34",
"name" : "xxx",
"id" : "1"
}
}
它包含多个带有不同id的json对象,而没有jsonarray.i想要将这些数据存储在对象中。
答案 0 :(得分:3)
如果因为密钥而在解析方面遇到问题,那么可以使用迭代器并提取密钥并解析它们
if(jObj != null){
Iterator<Object> keys = jObj.keys();
while(keys.hasNext()){
String key = String.valueOf(keys.next()); // this will be your JsonObject key
JSONObject childObj = jObj.getJSONObject(key);
if(childObj != null){
//Parse the data inside your JSONObject
}
}
}
答案 1 :(得分:2)
you can access data by mainly 3 ways
1 addValueEventListener
2 addChildEventListener
3 addListenerForSingleValueEvent
第1步:创建模型类
public class UserModel {
String id;
String name;
String age;
public String getId() {
return id;
}
public void setId(String id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getAge() {
return age;
}
public void setAge(String age) {
this.age = age;
}
}
第2步:访问活动中的数据
Firebase firebaseUserDataReference = new Firebase("your firebase url").child("your root name/");
firebaseUserDataReference.addListenerForSingleValueEvent(new ValueEventListener() {
@Override
public void onDataChange(DataSnapshot dataSnapshot) {
Log.d("Call", String.valueOf(dataSnapshot.getValue()));
for (DataSnapshot postData : dataSnapshot.getChildren()) {
UserModel userModel= postData.getValue(UserModel.class);
yourArrayList.add(userModel);
}
}
@Override
public void onCancelled(FirebaseError firebaseError) {
}
});