如何确定RestTemplate映射JSON到Map时返回的实现类?
RestTemplate映射JSON到Map的实现类一致性及String转换问题
我在代码中使用RestTemplate调用外部API并接收复杂JSON响应,因业务需求需将JSON原样返回前端,故选择将响应映射为Map<String, Object>。调试时发现返回的是LinkedHashMap,满足我对有序性的要求,但我想确认该行为是否始终一致可靠——即映射操作是否总会返回LinkedHashMap,还是可能返回HashMap等其他实现类。我查阅相关文档未找到RestTemplate映射JSON到Map时返回实现类的具体说明。
我的代码如下:
ParameterizedTypeReference<Map<String, Object>> responseType = new ParameterizedTypeReference<Map<String, Object>>() {}; return restTemplate.exchange(uri, HttpMethod.POST, new HttpEntity<>(request, getHeaders()), responseType).getBody();
补充:我尝试将响应转为String时出现错误:
Error while extracting response for type [class java.lang.String] and content type [application/json]
我的新代码如下:
return restTemplate.postForObject(uri, new HttpEntity<>(request, getHeaders()), String.class);
内容的提问来源于stack exchange,提问作者Calu River
相关产品推荐
相关产品推荐

