Gson帮助 - 尝试使用Gson获取JSON的第一个值(键)

时间:2016-12-29 15:01:14

标签: java json gson

尝试使用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"}}

2 个答案:

答案 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;
} }

我运行代码并且工作正常。

干杯。