Разбор файла json с помощью gson

У меня проблема с созданием сопоставления для json, которое я хочу проанализировать с помощью json. Это очень специфично, речь идет о файле json с массивом json с объектами в нем.

мой jsonfile начинается так:

  [
    {
        "venue": {
            "venue_seasons": [
                {
                    "created_at": "2011-12-25T23:00:28Z",
                    "updated_at": "2011-12-28T15:13:53Z",
                    "start_timestamp": 1293840000,
                    "id": 337,
                    "end": "2011-12-24T00:00:00Z",
                    "enabled": true,
                    "start": "2011-01-01T00:00:00Z",
                    "season_openings": [ … ],
                    "end_timestamp": 1324684800
                },
                { … }
            ],
            "address": "someadress",
            "city": "cityname",
            "name": "name",
            "created_at": "2011-03-31T07:55:33Z",
        etcetera
    }
    "venue":{another venue

Итак, сначала массив, затем объект (место встречи )с большим количеством объектов в нем (я удалил большинство из них, потому что это не важно для моего вопроса ), и некоторые массивы (, такие как сезон _отверстия ).

Мой код синтаксического анализа работает так, я использую gson. Входной поток работает нормально.

Reader reader = new InputStreamReader(inputStream);
JsonResponse venueResponse = gson.fromJson(reader, JsonResponse.class);               
List<Venues> results = venueResponse.venue;

с классом JsonResponse:

public class JsonResponse {
    public List<Venues> venue;  
}

и Места.класс:

public class Venues {

    public List<VenueSeasons> venue_seasons;

    @SerializedName("adress")
    public String getAdress;

    @SerializedName("city")
    public String getCity;

    @SerializedName("country")
    public String getCountry; etcetera 
}

Но когда я запускаю этот код, я получаю сообщение об ошибке:

Unable to start activity ComponentInfo{com.hera.android.JSON/com.hera.android.JSON.TestParser2Activity}: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at line 1 column 2

Конечно, я могу прочитать ошибку :, она ожидает объекты, но получает массив. Я много менял с разными jsonresponse.class и даже с помещением всего массива json в объект json (, что на самом деле не решение, потому что мне нужно работать с этим типом jsonfile ). Но каждый раз я получаю эту или подобную ошибку.

Я думаю, что я близок к решению, может ли кто-нибудь увидеть, что я просто не могу, и протянуть мне руку помощи? Спасибо.

5
задан Dipak Keshariya 2 July 2012 в 04:57
поделиться