java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在第 1 行第 67 列路径 $.data 处为 STRING

问题描述 投票:0回答:1

我有这个方法,但代码中的 gson 有问题: public static CmsUser validateTokenCms(String token, RestTemplate restTemplate, PropertyCommonConfig propertyCommonConfig) {

    TokenRequest tokenRequest = new TokenRequest();
    tokenRequest.setChannel("ORDER_RUNTIME");
    tokenRequest.setTransid(UUID.randomUUID().toString().replace("-", "").substring(0, 10));
    tokenRequest.setToken(token);

    String authString = propertyCommonConfig.getUserNameAuth() + ":" + propertyCommonConfig.getPasswordAuth();
    String encodedAuthString = Base64.getEncoder().encodeToString(authString.getBytes(StandardCharsets.UTF_8));

    HttpHeaders headers = new HttpHeaders();
    headers.add("Authorization", "Basic " + encodedAuthString);
    headers.add("Content-Type", "application/json");

    HttpEntity<TokenRequest> entity = new HttpEntity<>(tokenRequest, headers);

    ResponseEntity<String> responseEntity = null;
    try {
        responseEntity = restTemplate.postForEntity(propertyCommonConfig.getUrlAuthen() + "/customer/checkTokenCms",
                entity, String.class);
    } catch (Exception e) {
        e.printStackTrace();
    }

    log.info("====== responseEntity ======== " + responseEntity);

    Gson gson = new Gson();
    CheckTokenResp response = gson.fromJson(responseEntity.getBody(), CheckTokenResp.class);

    log.info("====== response ======== " + response);

    if (response == null) return null;

    CmsUser cmsUser = response.getData();

    log.info("====== cmsUser ======== " + cmsUser);

    if (cmsUser == null) return null;

    return cmsUser;
} 

我有错误:'java.lang.IllegalStateException:预期为 BEGIN_OBJECT,但在第 1 行第 67 列路径 $.data 处为 STRING'

java json string parsing gson
1个回答
0
投票

先打印正文。

它很可能不像 JSON 对象那样开头(带有

{
),而是以其他字符开头(可能是包含错误消息的字符串)。

© www.soinside.com 2019 - 2024. All rights reserved.