2015-06-15 7 views
0

Я знаю, как десериализовать обычный объект JSON с помощью библиотеки «Gson», но мне приходится сталкиваться с проблемой десериализации массива JSON с несколькими объектами и массивами JSON. Я пытаюсь получить время в объекте JSON arrival_time в этом простом ниже, но я не знаю, как структурировать мой класс для этого. Может ли кто-нибудь объяснить мне, как это сделать?Deserialize массив obejcts с Gson

Я ценю любую помощь.

Простой:

[{"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"] 
             } 

         } 
         ] 
      } 
      ] 

}] 
+0

Как выглядит ваш целевой тип? –

+0

Вложенные JSON требуют вложенных объектов, поэтому 'JsonArray info = ...' – MaxZoom

+0

Не могли бы вы вставить код для целевого объекта? Кроме того, запустите свой json через jsonlint.com. Вам не хватает запятой в вашей полезной нагрузке. –

ответ

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)); 
0

Чтобы узнать структуру, которую вы могли бы использовать JavaScript Object или онлайн-строитель.

http://www.jsonschema2pojo.org/

Смежные вопросы