Retrofit error de lanzamiento Se esperaba BEGIN_ARRAY pero era BEGIN_OBJECT
Hola, soy nuevo en la biblioteca de Retrofit, tengo problemas para analizar algunos json. He mirado algunas otras soluciones en Stackoverflow pero no tener mucha suerte con mi problema. Im tratando de obtener aa webservice simple para trabajar. Cualquier sugerencia sería agradecido apreciado.
Archivo Json
- Java.lang.IllegalStateException: Se esperaba BEGIN_ARRAY pero era BEGIN_OBJECT en la línea 1 de la columna 2
- Respuestas de ajuste retro se bloquean con pro guard
- El tipo de retorno observable debe parametrizarse como Observable <Foo> o Observable <? Se extiende Foo>
- Hilo predeterminado de actualización
- Android- Los datos se asignan en el hilandero pero cuando se selecciona no se muestra el valor en el hilador
{"employees":[ {"firstName":"John", "lastName":"Doe"}, {"firstName":"Anna", "lastName":"Smith"}, {"firstName":"Peter", "lastName":"Jones"} ]}
Método de solicitud
public void requestEmployeeData(String uri){ RestAdapter adapter = new RestAdapter.Builder().setEndpoint(ENDPOINT).build(); EmployeesAPI employeesAPI =adapter.create(EmployeesAPI.class); employeesAPI.getEmployees(new Callback<List<Employees.employeesclass>>() { @Override public void success(List<Employees.employeesclass> employees, Response response) { List<String> names = new ArrayList<String>(); Log.v("nas", "The Employees Webservice Success" + response); } @Override public void failure(RetrofitError retrofitError) { Log.v("nas", "The Employees Webservice Failed " + retrofitError); } }); }
Empleados.java
public class Employees { // List<String> listOfStrings = new ArrayList<String>(); @SerializedName(value="employees") public List<Employees> employees; public void setEmployees(List<Employees> employees) { this.employees = employees; } public static class employeesclass { String firstName; String lastName; @Override public String toString() { return (firstName + " " + lastName); } } }
EmpleadosAPI.java
public interface EmployeesAPI { @GET("/get_names.json") public void getEmployees(Callback<List<Employees.employeesclass>> response); }
El error que estoy recibiendo es
The Employees Webservice Failed retrofit.RetrofitError: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_ARRAY but was BEGIN_OBJECT at line 1 column 2 path $
Entiendo que el error es decir que los datos son un objeto y debe comenzar con una matriz, pero no puedo resolverlo .. Gracias
- ¿Cómo puedo obtener Robospice para tratar cualquier cosa que no sea una respuesta 200 de Retrofit & OKHttp como un error
- Detener un proceso de fondo en robospice
- RXJava cómo tratar de conseguir después de x tiempo
- Ajustar la variable json del mapa a la palabra clave
- RxJava onCompleted y onTerminate en el hilo principal
- Retrofit: Se esperaba BEGIN_OBJECT pero era BEGIN_ARRAY
- Retrofit, devolución de llamada para 204 No respuesta de contenido?
- Cómo llamar al método GET simple usando "Retrofit"
Está mezclando clases de employeesclass
y de employeesclass
. Trate de usar esto en su lugar:
public class Employees { @SerializedName(value="employees") public List<employeesclass> employees; public void setEmployees(List<employeesclass> employees) { this.employees = employees; } // employeesclass definition }
A continuación, cambie su interfaz y requestEmployeeData
método en consecuencia
public interface EmployeesAPI { @GET("/get_names.json") public void getEmployees(Callback<Employees> response); }
- Webview con interfaz de JavaScript
- ¿Hay un #ifdef en Qt para determinar si estamos construyendo para Android