You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

RestTemplate服务间调用JSON嵌套数组被转为对象问题咨询

RestTemplate跨微服务调用JSON结构异常问题

在同一OpenShift集群的两个微服务间,使用RestTemplate进行服务调用时遇到JSON数据结构异常:

  • 初始用Map作为返回类型时,源JSON中的顶层数组字段c被转为单个对象,数组内其他元素丢失;
  • 改用JsonNode作为返回类型后,顶层数组恢复正常,但嵌套的params数组(当前仅含一个元素)仍被转为单个对象。

该JSON数据来自第三方API,未来params数组可能包含多个元素,现有代码存在崩溃风险。

相关代码示例

源服务代码

responseEntity = this.restTemplateAnsible().exchange(ansiblePBNamesUrl + repoName, HttpMethod.GET, request, Map.class);
LOGGER.info("responseEntity in callAnsiblePlaybookNamesList: {}", responseEntity); // 此处打印嵌套JSON
Map<String, Object> mapResponse = responseEntity.getBody();
return mapResponse;

目标服务初始代码

ResponseEntity<Map<String, Object>> responseEntity = restTemplate
                .exchange(cmtServiceAPIName + ansibleServiceUrl, HttpMethod.POST, request, mapClass);
        LOGGER.info("responseEntity: " + responseEntity);

目标服务修改后代码

ResponseEntity<JsonNode> responseEntity = restTemplate
                .exchange(cmtServiceAPIName + ansibleServiceUrl, HttpMethod.POST, request, JsonNode.class);

内容的提问来源于stack exchange,提问作者Ramya

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.28 08:22:29