2
こんにちは、私はRetrofit 2.0ライブラリを初めて使用しています。私はStackoverflow上のいくつかの他のソリューションを見たが、私の問題で多くの運がない。私はretrofit 2.0でAndroidからapiを呼び出そうとしています。しかし、BEGIN_ARRAYがBEGIN_ARRAYのエラーをスローしていますが、BEGIN_OBJECTでした。Retrofit 2 throwingエラーBEGIN_ARRAYが発生しましたが、BEGIN_OBJECTでした
ウェブAPIからの私の応答は次のとおりです。
public class UserResponse {
private List<Items> items;
public List<Items> getItems() {
return items;
}
private class Items{
private String id;
private String lat;
private String lng;
private String user_id;
private String created_at;
private String updated_at;
private List<User> user;
private class User{
private String id;
private String name;
private String email;
private String created_at;
private String updated_at;
public String getId() {
return id;
}
public String getName() {
return name;
}
public String getEmail() {
return email;
}
public String getCreated_at() {
return created_at;
}
public String getUpdated_at() {
return updated_at;
}
}
public String getId() {
return id;
}
public String getLat() {
return lat;
}
public String getLng() {
return lng;
}
public String getUser_id() {
return user_id;
}
public String getCreated_at() {
return created_at;
}
public String getUpdated_at() {
return updated_at;
}
public List<User> getUser() {
return user;
}
}
}
これは私のインターフェイスです:
@GET("coordinates")
Call <UserResponse> getUsers();
これは私がどのようにこれは私のモデルクラスがどのように
{
"items": [{
"id": 19,
"lat": 23.79418,
"lng": 90.401859,
"user_id": 1,
"created_at": null,
"updated_at": null,
"user": {
"id": 1,
"name": "Tarif",
"email": "[email protected]",
"created_at": null,
"updated_at": null
}
}]
}
です電話:
ITCService service = ApiUtils.createService(ITCService.class);
Call<UserResponse> call= service.getUsers();
call.enqueue(new Callback<UserResponse>() {
@Override
public void onResponse(Call<UserResponse> call, retrofit2.Response<UserResponse> response) {
if (response.isSuccessful()) {
UserResponse res = response.body();
Log.e("TAG", res.toString());
} else {
// TODO: toast
Toast.makeText(getApplicationContext(),response.message(),Toast.LENGTH_SHORT).show();
}
}
@Override
public void onFailure(Call<UserResponse> call, Throwable t) {
// TODO: error alert
Toast.makeText(getApplicationContext(),t.getMessage(),Toast.LENGTH_SHORT).show();
}
});
}
それはあなただけ
HashMap
の
User
代わりにList.No必要性を使用してアイテム自体にUserクラスを定義している
JSONObject
ない
JSONArray
.Sinceあるので
どうすればいいですか? –
キーと値は何ですか? –
リストの代わりにユーザーを宣言する –