尝试使用Gson lib获取JSON的第一个值(键),任何帮助都是好的。
希望从JSON中获取-K_63RGSCZra1jVeDrmT
并希望将其保存在String变量中。
这是我的代码和输出:
gson.toJson(dataSnapshot.getValue());
Log.d(tag, "gson: " + gson.toJson(dataSnapshot.getValue()));
输出:
{"-K_63RGSCZra1jVeDrmT":{"name":"Joseph witman","email":"jwitman@gmail.com"}}
答案 0 :(得分:1)
你可以尝试
String json = "{\"-K_63RGSCZra1jVeDrmT\":{\"name\":\"Joseph witman\",\"email\":\"jwitman@gmail.com\"}}";
JsonParser jp = new JsonParser();
JsonElement element = jp.parse(json);
JsonObject root = element.getAsJsonObject();
由于JsonObject.entrySet()
包含所有键值,您可以通过以下方式提取它们;
for (Entry<String, JsonElement> e : root.entrySet()) {
System.out.println(e.getKey());
}
答案 1 :(得分:1)
以下是获取密钥的代码:
JsonParser parser = new JsonParser();
JsonObject jobj = parser.parse(new FileReader("Filepath_JSON")).getAsJsonObject();
Gson gson = new Gson();
Set<Map.Entry<String, JsonElement>> entrySet = jobj.entrySet();
for(Map.Entry<String, JsonElement> entry : entrySet) {
Person prsn = gson.fromJson(jobj.getAsJsonObject(entry.getKey()), Person.class);
prsn.setId(entry.getKey());
System.out.println("id : " + prsn.getId());
}
这是Pojo Person课程:
class Person {
private String id;
private String name;
private String email;
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 getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
} }
我运行代码并且工作正常。
干杯。