Rénovation de jeter erreur Devrait BEGIN_ARRAY mais a été BEGIN_OBJECT
Salut, je suis nouveau à la Rénovation de la bibliothèque, j'ai des problèmes de l'analyse d'un json. J'ai regardé quelques autres solutions sur Stackoverflow, mais ne pas avoir beaucoup de chance avec mon problème. im essayant d'obtenir un simple webservice de travail. toutes les suggestions sont grandement appréciée ..
Fichier Json
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
Demande de la méthode
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);
}
});
}
Employees.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);
}
}
}
EmployeesAPI.java
public interface EmployeesAPI {
@GET("/get_names.json")
public void getEmployees(Callback<List<Employees.employeesclass>> response);
}
l'erreur im obtenir est
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 $
Je comprends l'erreur est de dire les données est un objet, et il devrait commencer avec un tableau mais je ne peux pas travailler.. Merci
OriginalL'auteur n4zg | 2014-10-08
Vous devez vous connecter pour publier un commentaire.
Vous êtes le mélange
Employees
etemployeesclass
classes. Essayez d'utiliser ceci à la place:Puis changer d'interface et
requestEmployeeData
méthode en conséquenceEmployees/employeesclass
à quelque chose commeEmployeesWrapper/Employee
par exemple devrait rendre plus facile à comprendre.Je vous remercie . qui a travaillé.. service web une réussite 🙂
merci cela a fonctionné pour moi
OriginalL'auteur Salem