从OkHttp响应Java获取值

从OkHttp响应Java获取值,java,spring-boot,okhttp,Java,Spring Boot,Okhttp,我试图从OkHttp响应正文字符串中获取值,但得到以下错误 java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $ 响应正文字符串如下所示(response.body().toString()) 我像这样解析它 Gson g = new Gson(); SuccessResponse resp = g.fromJson(resp.body().toString

我试图从OkHttp响应正文字符串中获取值,但得到以下错误

java.lang.IllegalStateException: Expected BEGIN_OBJECT but was STRING at line 1 column 1 path $
响应正文字符串如下所示(response.body().toString()

我像这样解析它

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

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

您可以使用该字段创建POJO(手动或使用类似的服务)。然后,您可以通过以下方式创建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());

看起来和我用问题更新的问题一样,我现在得到一个java.lang.IllegalStateException:应该是BEGIN_对象,但在第1行第1列路径$errorUpdated处是字符串。该示例运行正常。确保正确声明了类。
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());