Ho un problema nel creare un mapping per un JSON che voglio analizzare usando json. È molto specifico, si tratta di un file JSON con un array JSON con oggetti in esso.Parsing file json con gson
mia jsonfile inizia così:
[
{
"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
Quindi, prima una matrice, di un oggetto (luogo), con un sacco di oggetti in esso (ho rimosso la maggior parte di loro, perché quello non è importante per la mia domanda) e alcuni array (come season_openings).
Il mio codice di analisi funziona in questo modo, sto usando gson. L'inputstream funziona bene.
Reader reader = new InputStreamReader(inputStream);
JsonResponse venueResponse = gson.fromJson(reader, JsonResponse.class);
List<Venues> results = venueResponse.venue;
con la JsonResponse classe:
public class JsonResponse {
public List<Venues> venue;
}
e 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
}
Ma quando ho eseguito questo codice ottengo un errore:
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
Naturalmente posso leggere l'errore: si aspetta un o bject ma ottiene una matrice. Ho variato molto con diversi jsonresponse.class e persino con l'inserimento dell'intero array json in un oggetto json (cosa non è realmente una soluzione perché ho bisogno di lavorare con questo tipo di jsonfile). Ma ogni volta che ottengo questo o un errore simile.
Penso di essere vicino a una soluzione, qualcuno può vedere quello che non posso e darmi una mano? Grazie.
Con l'esempio JSON non valido e il codice Java di esempio non valido non valido, la gente che potrebbe tentare di aiutare è lasciata a indovinare su cosa sta realmente accadendo. È una buona pratica pubblicare esempi minimi completi che dimostrino il problema che si sta cercando di risolvere. –