Отображение JSON-ответа на соответствующий POJO - PullRequest
0 голосов
/ 31 января 2019

У меня проблема с моим проектом при получении ответа от json.

Это моя структура JSON

{
"RC": "00",
"FakturPengajuan": "PO201901310000000007",
"Plafond": "1,000,000.00",
"Pokok": "500,000.00",
"Bunga": "10,000.00",
"TotalBayar": "510,000.00",
"JT": {
    "1": {
        "Ke": 1,
        "JatuhTempo": "28 Februari 2019",
        "Pokok": "500,000.00",
        "Bunga": "10,000.00",
        "Jumlah": "510,000.00",
        "BakiDebet": "500,000.00"
    },
    "2": {
        "Ke": 2,
        "JatuhTempo": "31 Maret 2019",
        "Pokok": "500,000.00",
        "Bunga": "10,000.00",
        "Jumlah": "510,000.00",
        "BakiDebet": "0.00"
    }
}

}

Это мой код ответа

@Override
        public void onFinish(String cResponse) {
            String cError = null;
            if (cResponse != null){
                try{
                    Response response = gson.fromJson(cResponse,Response.class);
                    if (response != null && response.getRC() != null){
                        if (response.getRC().equals("00")){



                        }else cError = response.getMSG();
                    }else{
                        cError = "Error";
                    }
                }catch (Exception e){
                    cError = "Error" + e.getMessage();
                    FuncApp.showLog("Response " + e.getMessage());
                }

            }else cError = "Gagal";
            if (cError != null)
                new FuncApp.OkNoDialog(getActivity(),"Gagal Aktivasi",cError ,null,"OK").setOnFinish(new FuncApp.OkNoDialog.ButtonClick() {
                    @Override
                    public void onClick(Boolean isOKButton) {

                    }
                });

            funcApp.closeProgresDialog();
        }

, и это мой метод получения и установки ответа,не все, только все переменные, которые я использую.

public class Response {
private String RC;
private String FakturPengajuan, Plafond, Pokok, Bunga, TotalBayar;
private String[] JT;

public Response(){}
  }

Я получил эту ошибку при получении ответа, каким должен быть код?

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $

1 Ответ

0 голосов
/ 31 января 2019

Класс POJO Response имеет несколько недопустимых структурных полей JT - это Map не массив, и у вас должны быть методы получения и установки

public class Response {
private String RC;
private String FakturPengajuan, Plafond, Pokok, Bunga, TotalBayar;
private Map<String,MapValue> JT;

 public Response(){}
  }

Класс значения карты

public class MapValue {

 private int Ke;
 private String JatuhTempo;
 private String Pokok;
 private String Bunga;
 private String Jumlah;
 private String BakiDebet;

 }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...