2016-09-26 28 views
2

我有一个响应形式服务器为:改造2.0获得数组作为交请求的结果

[ 
    { 
    "ID": "1", 
    "Title": "BIRATNAGAR", 
    "BankID": "1", 
    "BranchCode": "0", 
    "LocationID": "71500200", 
    "IsActive": "yes" 
    }, 
    { 
    "ID": "2", 
    "Title": "BIRATNAGAR", 
    "BankID": "1", 
    "BranchCode": "0", 
    "LocationID": "71500900", 
    "IsActive": "yes" 
    }, 
    { 
    "ID": "3", 
    "Title": "BIRATNAGAR", 
    "BankID": "1", 
    "BranchCode": "0", 
    "LocationID": "94361117", 
    "IsActive": "yes" 
    } 
] 

我有改型的API为: @POST(“authapp/Restserver/API/Masterdata/getBranchListByBank“) 调用> getBranchListByBank(@Query(”api_key“)String id);我已经将它称为: RetrofitArrayAPI服务= retrofit.create(RetrofitArrayAPI.class);

Call<List<BankBranch>> call = service.getBranchListByBank(s); 

    call.enqueue(new Callback<List<BankBranch>>() { 
     @Override 
     public void onResponse(Call<List<BankBranch>> call, Response<List<BankBranch>> response) { 
      try { 

       List<BankBranch> banks = response.body(); 

       for (int i = 0; i < banks.size(); i++) { 

        String id = banks.get(i).getTitle(); 
        String name = banks.get(i).getID(); 
        String marks = banks.get(i).getIsActive(); 
        Log.i("ashihs", id + " " + marks + " " + name); 


       } 


      } catch (Exception e) { 
       Log.d("onResponse", "There is an error"); 
       e.printStackTrace(); 
      } 
     } 

     @Override 
     public void onFailure(Call<List<BankBranch>> call, Throwable t) { 
      Log.d("onFailure", t.toString()); 
     } 

    }); 

但我不能得到银行分行的名单。我得到的错误如下: java.lang.IllegalStateException:期望BEGIN_ARRAY,但是BEGIN_OBJECT在第1行第2列路径$

任何人都可以帮助我吗? 在此先感谢。

+0

它是没有名称的数组 –

+0

[GSON Expected BEGIN \ _ARRAY但是BEGIN \ _OBJECT?]可能重复(http://stackoverflow.com/questions/31570343/gson-expected-begin-array-but-was-开始对象) –

回答

1

ü可能得到不好的API请求它schould这个样子:

API:

@POST("authapp/Restserver/api/Masterdata/getBranchListByBank") 
     Call<List<BankBranch>> getBranchListByBank(@Query("api_key") String id); 

而且方法schould这个样子:

Call<List<BankBranch>> response = apiCall.getBranchListByBank(id); 
      response.enqueue(new Callback<List<BankBranch>>() { 
       @Override 
       public void onResponse(Call<List<BankBranch>> call, Response<List<BankBranch>> response) { 
        List<BankBranch> bankBranch = response.body(); 
       } 

       @Override 
       public void onFailure(Call<List<BankBranch>> call, Throwable t) { 

       } 
      }); 
     } 

确保您的模型BankBranch拟合JSON响应;