Spring restTemplate 获取原始 json 字符串

Posted

技术标签:

【中文标题】Spring restTemplate 获取原始 json 字符串【英文标题】:Spring restTemplate get raw json string 【发布时间】:2018-04-16 16:19:28 【问题描述】:

如何从 spring rest 模板中获取原始 json 字符串?我尝试了以下代码,但它返回给我的 json 不带引号,这会导致其他问题,我怎样才能按原样获取 json。

ResponseEntity<Object> response  = restTemplate.getForEntity(url, Object.class);
String json = response.getBody().toString();

【问题讨论】:

你能把例子打印出来吗? 你试过使用String吗? restTemplate.getForEntity(url, String.class); 【参考方案1】:

你甚至不需要ResponseEntitys!只需将getForObjectString.class 一起使用即可:

final RestTemplate restTemplate = new RestTemplate();
final String response = restTemplate.getForObject("https://httpbin.org/ip", String.class);

System.out.println(response);

它将打印如下内容:


  "origin": "1.2.3.4"

【讨论】:

我的返回类型是对象,我想要原始的 json 字符串? 当服务器将application/json 作为内容类型Cannot deserialize instance of java.lang.String out of START_ARRAY token 发送时,这不会起作用,如果正文只包含一个json-string,它只会给你一个字符串

以上是关于Spring restTemplate 获取原始 json 字符串的主要内容,如果未能解决你的问题,请参考以下文章

Java Spring resttemplate 字符编码

Spring Boot 上传文件 获取项目根路径 物理地址 resttemplate上传文件

自定义 RestTemplate 异常处理 (转)

spring cloud之Feign的使用

195-如何获取Spring容器中的对象?

195-如何获取Spring容器中的对象?