从 OkHttp 响应中获取值 Java

Get values from OkHttp Response Java

我正在尝试从 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); 

如何从响应字符串中获取各个值。

您可以使用该字段创建 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());