使用Gson Java解析复杂Json - 仅限节点

时间:2014-02-22 12:51:14

标签: java json parsing gson

我有这个Json结构,我需要获取“myId”,“name”,“adress1”和“city”的信息。

      {
        "InformationResponse":{
        "Id":"122212",
        "customerSessionId":"007",
        "Summary":{
        "myId":1234567,
        "name":"Casino",
        "address1":"13 Street",
        "city":"Las Vegas",
       },
...

我正在使用Gson(Java)。 我创建了3个Class(InformationResponse,Summary和Main)

public class Summary {

    private String myId;
    private String name;
    private String city;

    public String getMyId() {
        return myId;
    }
    public void setMyId(String myId) {
        this.myId= myId;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public String getCity() {
        return city;
    }
    public void setCity(String city) {
        this.city = city;
    }

    @Override
    public String toString(){
        return getMyId() + ", "+getName()+", "+getCity();
    }
}

MyObject.class

public class MyObject{

    private Summary summary;

    public Summary getSummary() {
        return address;
    }

    @Override
    public String toString(){
        sb.append("Summary="+getSummary()+"\n");
        return sb.toString();
    }
}

在Main中,我可以看到我的Json文件,我正在这样做:

// Get Gson object
Gson gson = new GsonBuilder().setPrettyPrinting().create();

// parse json string to object
MyObject myobject1 = gson.fromJson(json, MyObject.class);

但我每次都有空。

感谢您的帮助!

Jean M。

2 个答案:

答案 0 :(得分:0)

试试这个@SerializedName(“Id”)                private String myId;

答案 1 :(得分:-2)

Gson需要默认的无参数构造函数:

https://sites.google.com/site/gson/gson-user-guide#TOC-Object-Examples

尝试在Summary和MyObject类中添加public no-args构造函数。

public Summary() {}
public MyObject() {}