У меня возникла проблема с созданием сопоставления для json, который я хочу проанализировать с помощью json. Это очень специфично, это о json-файле с массивом json с объектами в нем.Разбор json-файла с gson
мой 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
Так первый массив, чем объект (место) с большим количеством объектов в нем (я удалил большинство из них, потому что то не важно, на мой вопрос) , и некоторые массивы (например, season_openings).
Мой синтаксический код работает следующим образом: im использует 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;
}
и Venues.class:
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
Ofcourse я могу прочитать ошибку: она ожидает o bjects, но получить массив. Я много варьировался с различным jsonresponse.class и даже с помещением всего json-массива в объект json (что на самом деле не является решением, потому что мне нужно работать с этим типом jsonfile). Но каждый раз я получаю эту или аналогичную ошибку.
Я думаю, что я близок к решению, может ли кто-нибудь увидеть то, что я просто не могу, и дать мне руку помощи? Спасибо.
С недопустимым примером JSON и неполным недействительным примером Java-кода люди, которые могут попытаться помочь, оставляют догадки о том, что происходит на самом деле. Хорошей практикой является публикация полных минимальных примеров, демонстрирующих проблему, которую нужно решить. –