使用Java解析JSon数据(google-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格式不熟悉的原因使我更加困惑.

在这方面的任何帮助将是有帮助的.

最佳答案
您的数据结构应反映您要反序列化的数据.

例如,您可以使用这种形式的东西:

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属性映射到Data类型的guid属性.该对象的属性作为字符串放置在Map中.

转载注明原文:使用Java解析JSon数据(google-gson) - 代码日志