簡體   English   中英

Retrofit 2.0 根據 post 請求獲取 json 對象數組

[英]Retrofit 2.0 get array of json object as a result of post request

我有一個響應表單服務器:

[
  {
    "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") Call> getBranchListByBank(@Query("api_key") String id);

我稱之為: RetrofitArrayAPI service = 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 但在第 1 行第 2 列路徑 $ 處為 BEGIN_OBJECT

誰能幫我? 提前致謝。

你可能得到了糟糕的 Api 請求,它看起來像這樣:

接口:

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

方法應該是這樣的:

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 響應;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM