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

{"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

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); } 
  • Problema con Retrofit y simple - intento de hacer un lector de RSS para Android
  • Retrofit: parámetros de consulta múltiples en el comando @GET?
  • Manejar errores en Retrofit 2 RX
  • Android: Realm + Retrofit 2 + Gson
  • Solicitudes HTTP periódicas con RxJava y Retrofit
  • Análisis de JSON con Retrofit
  • Los parámetros @Part sólo se pueden utilizar con la codificación multipart. (Parámetro # 8)
  • ¿Cómo implementar correctamente el feed (similar a Facebook / Instagram) en Android?
  • Parse Dynamic Key Json String utilizando Retrofit
  • Obtención de información de encabezado con RXJava y Retrofit
  • AWS S3 Rest API con Android Retrofit V2 biblioteca, la imagen cargada está dañada
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.