使用Gson反序列化对象数组

时间:2015-06-15 20:10:31

标签: java json

我知道如何使用“Gson”库反序列化普通的JSON对象,但我遇到了使用多个JSON对象和数组反序列化JSON数组的问题。我想在下面这个简单的arrival_time JSON对象中获取时间,但我不知道如何构建我的类来完成它。有人能解释我怎么做吗?

简单:

[{"route": 1,
  "info": [
            {"direction": "Surrey Quays"},
            {"stops": [{"stops_name": " Tenison Way"},
                       {"arrival_time":{
                                          "mon-fri": [ "05:38", "06:07","06:37"],
                                                "sat": ["05:34","06:01","06:31"],
                                                "son": ["06:02","06:34","07:04"]
                                        }

                       }
                      ]
            }
          ] 

}]

2 个答案:

答案 0 :(得分:1)

您可以使用以下结构解析此Json:

class ArrivalTime {
    public List<String> mon_fri;
    public List<String> sat;
    public List<String> son;
}

class Stop {
    public String stop_name;
    public ArrivalTime arrival_time;
}

class Info {
    public String direction;
    public List<Stop> stops;
}

class RouteInfo {
    public Integer route;
    public List<Info> info;
}

然后像这样使用它:

Gson gson = new Gson();
RouteInfo[] routes = gson.fromJson(/* your json string*/, RouteInfo[].class);

到达时间将在这样的地方可用(它很难看,但我只是想让你呈现这个json字符串的样本结构):

System.out.println(routes[0].info.get(1).stops.get(1).arrival_time.sat.get(0));

答案 1 :(得分:0)

要了解结构,您可以使用javascript对象或在线构建器。

http://www.jsonschema2pojo.org/