Root有一个儿童聊天。在聊天中,我们保存了不同用户的聊天记录(在这种情况下,它们是aseed,aseed2和aseed3。我需要在列表视图中显示用户名(在列表中显示aseed,aseed2和aseed3)。
这是JSON
{
"chat" : {
"aseed" : {
"-KQC94Spu5JdJRbjnBh_" : {
"author" : "JavaUser72599",
"message" : "ggf"
},
"-KQC98gR9vKOyOAtKrS5" : {
"author" : "JavaUser72599",
"message" : "dhdh"
}
},
"aseed3" : {
"-KQCBw_ldkfhVG643eFH" : {
"author" : "aseed3",
"message" : "aseed"
},
"-KQCBxQJXq8rIqkHvA4r" : {
"author" : "aseed3",
"message" : "ok"
},
"-KQCC30HjSsHWSot9MNu" : {
"author" : "aseed3",
"message" : "hi"
}
},
"aseed2" : {
"-KQCC0-q6Do67PiFXXcP" : {
"author" : "aseed2",
"message" : "ok ok"
}
}
}
}
演示项目Android Chat展示了如何阅读树叶中的最终数据。
答案 0 :(得分:2)
我看到它的方式,您需要访问该特定DataSnapshot节点的密钥。你可以做的是,一旦你访问了aseed,aseed2 ..节点(可能在for循环中),你就可以获得每个孩子的密钥并用它来膨胀ListView。
DataSnapshot
元素有一个名为getKey().
答案 1 :(得分:0)
你可以获得jsonobject然后获取将返回JSONArray的名称。 代码:
String jsonstr = json;//This is the JSON string
JSONObject jo = new JSONObject(jsonstr);
JSONObject chat = jo.getJSONObject("chat");
JSONArray jsonNames = chat.names();
String[] names = null;
for(i=0; i < jsonNames.length();i++)
names[i] = jsonNames.get(i);
现在在任何你想要的地方使用这个名字数组。