Tengo un problema al crear una asignación para un json que quiero analizar usando json. Es muy específico, se trata de un archivo json con una matriz json con objetos en él.Analizando archivo json con gson
mi jsonfile comienza así:
[
{
"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
Así que primero una matriz, que un objeto (lugar) con una gran cantidad de objetos que contiene (i eliminado la mayor parte de ellos, porque eso no es importante para mi pregunta) y algunas matrices (como season_openings).
Mi código de análisis funciona así, estoy usando gson. El inputstream funciona bien.
Reader reader = new InputStreamReader(inputStream);
JsonResponse venueResponse = gson.fromJson(reader, JsonResponse.class);
List<Venues> results = venueResponse.venue;
con el JsonResponse clase:
public class JsonResponse {
public List<Venues> venue;
}
y 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
}
Pero cuando corro el código me sale un error:
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
Por supuesto Puedo leer el error: espera un o bjects pero obtiene una matriz. He variado mucho con diferentes jsonresponse.class e incluso con poner toda la matriz json en un objeto json (lo que no es realmente una solución porque tengo que trabajar con este tipo de jsonfile). Pero cada vez que consigo esto o un error similar.
Creo que estoy cerca de una solución, ¿alguien puede ver lo que no puedo y darme una mano de ayuda? Gracias.
Con el ejemplo no válido JSON y el ejemplo incompleto de código Java no válido, las personas que podrían intentar ayudar se quedan adivinando sobre lo que realmente está sucediendo. Es una buena práctica publicar ejemplos mínimos completos que demuestren el problema que se intenta resolver. –