У меня есть JSON, который содержит общие значения. Я попробовал это, используя Карты, но не смог получить результаты. Моя проблема заключается в том, что общие теги начинаются со второго уровня. Вот JSON, я пытаюсь разобраться с gson.Разбор общей метки в JSON от GSON
{
"success": true,
"status": 200,
"events": {
"Sep 2013": [
{
"artist_id": 1,
"created_at": "2013-05-18T15:21:00Z",
"duration": 2,
"end_time": "2013-09-19T22:00:00Z",
"event_desc": "",
"event_facebook_link": "",
"event_link": "https://www.smtickets.com/marketing/view/1316",
"feature_small": false,
"featured_status": false,
"id": 90,
В этом теге JSON после «событий» является общим, т. Е. «Сентябрь 2013».
Я пытаюсь прямо сейчас:
public Event event ;
public class Event {
public ArrayList<Map<String, String>> dates;
}
И я к нему доступ:
obj = gson.fromJson(reader, AllShowsActivityData.class);
Может кто-нибудь сказать мне, что, как я могу сделать класс дат. Так что Gson может сериализовать его. Или есть другой способ итерации первого уровня тега, а затем я могу объявить что-то вроде этого
Type fooType = new TypeToken<Foo<Bar>>() {}.getType();
gson.toJson (Foo, fooType);
Насколько я знаю, с общими филинами вы ввернуты и больше не можете сопоставить JSON с каким-либо объектом. Вам придется разобрать JSON самостоятельно с помощью gson, sax-style. –
Серьезно: (... должен быть какой-то способ сделать это. Фактически, согласно https://sites.google.com/site/gson/gson-user-guide#TOC-Serializing-and-Deserializing-Generic -Типы мы можем сделать это, но это для тегов первого уровня. – Hasandroid