2016-04-20 18 views
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(); 
      } 
     }); 

    } 
それはあなただけ HashMapUser代わりにList.No必要性を使用してアイテム自体にUserクラスを定義している JSONObjectない JSONArray .Sinceあるので

答えて

1

List<User>HashMap<String,Object>ないリストでなければなりません。

+0

どうすればいいですか? –

+0

キーと値は何ですか? –

+0

リストの代わりにユーザーを宣言する

関連する問題