Получить значения из OkHttp Response Java - PullRequest
0 голосов
/ 17 февраля 2020

Я пытаюсь получить значения из строки тела ответа OkHttp, но получаю следующую ошибку

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

Строка тела ответа выглядит следующим образом ( response.body (). ToString () )

        {
            "MerchantRequestID":"000000000000",
            "CheckoutRequestID":"170220202216211826",
            "ResponseCode": "0",
            "ResponseDescription":"Request accepted for processing",
            "CustomerMessage":"Request accepted for processing"
        }

Я анализирую это следующим образом

Gson g = new Gson();
SuccessResponse resp = g.fromJson(resp.body().toString(),SuccessResponse.class); 

Как получить отдельные значения из строки ответа.

1 Ответ

0 голосов
/ 17 февраля 2020

Вы можете создать POJO с этими полями (вручную или используя такие сервисы, как this ). Затем вы можете создать экземпляр вашего POJO следующим образом:

String json = "{'MerchantRequestID': '000000000000','CheckoutRequestID':'170220202216211826','ResponseCode': '0','ResponseDescription':'Request accepted for processing','CustomerMessage':'Request accepted for processing'}";
    Gson g = new Gson();
    Example example = g.fromJson(json, Example.class);
    System.out.print(example.getCheckoutRequestID());
...