Merhaba Yenileme kitaplığı için yeniyim, bazı jsonları ayrıştırmakta sorun yaşıyorum. Stackoverflow'taki diğer çözümlere baktım ama benim sorunumda çok şansım olmadı. Çalışmak için basit bir web hizmeti almaya çalışıyorum. herhangi bir öneri minnettar olurum ..Retrofit atma hatası Beklenen BEGIN_ARRAY ancak BEGIN_OBJECT oldu
Json dosyayı
{"employees":[
{"firstName":"John", "lastName":"Doe"},
{"firstName":"Anna", "lastName":"Smith"},
{"firstName":"Peter", "lastName":"Jones"}
]}
İstek yöntemi
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);
}
alma
hata im
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 $
hata veri bir nesnedir söylediğini anlamaya ve bu bir dizi ile başlamalıdır ama .. Sen Employees
karıştırma Teşekkür
Ayrıca böyle bir şey için 'Çalışanlar/employeesclass' yeniden adlandırma
requestEmployeeData
yöntemini değiştirmek' EmployeesWrapper/Employee' örneğin daha kolay anlaşılması yapmalıdır . – SalemTeşekkürler. Bu çalıştı .. web hizmeti bir başarı :-) – n4zg
benim için çalıştı teşekkür ederim – souttab