使用java解析JSon数据(google-gson)

时间:2011-11-27 15:26:41

标签: java json gson

尝试学习如何使用JSON并解析json数据。我使用google-gson API来解析我的json数据。

我以下列格式获取我的JSON数据

{"guid":{"uri":"http://social.yahooapis.com/v1/me/guid","value":"123456789"}}

这是我使用google-gson

的解析代码
Gson gson=new Gson();
MyGuid myGuid=new MyGuid();
myGuid=gson.fromJson(response.getBody(), MyGuid.class);

public class MyGuid {

public MyGuid() {

}

private String value;

public String getValue() {
    return value;
}

public void setValue(String value) {
    this.value = value;
}

}

但是我将guid的值变为null。 我知道我做错了但是对JSON格式不熟悉是让我更加困惑的原因。

这方面的任何帮助都会有所帮助。

1 个答案:

答案 0 :(得分:4)

您的数据结构应该反映您尝试反序列化的数据。

例如,您可以使用以下形式的内容:

public class Data {
  private Map<String, String> guid;

  public Map<String, String> getGuid() {
    return guid;
  }

  public void setGuid(Map<String, String> guid) {
    this.guid = guid;
  }

  public static void main(String[] args) {
    String json =
        "{\"guid\":{" + "\"uri\":\"http://social.yahooapis.com/v1/me/guid\","
            + "\"value\":\"123456789\"}}";
    Data data = new Gson().fromJson(json, Data.class);
    System.out.println(data.getGuid()
        .get("uri"));
  }
}

JSON的guid属性映射到guid类型的Data属性。该对象的属性作为字符串放在Map中。