关于 SpringBoot 返回对象为 json 字符串时转义问题
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了关于 SpringBoot 返回对象为 json 字符串时转义问题相关的知识,希望对你有一定的参考价值。
参考技术A 使用 SpringBoot 时使用 fastjson 来作为json解析库,当返回的数据为json字符串时,fastjson会将正确的json数据自动转义加上反斜杠。此时可以通过将json字符串转化为对象后返回的方式解决该问题。SpringBoot 返回json 字符串(jackson 及 fast json)
一、jackson
1、Controller 类加注解@RestController
这个注解相当于@Controller 这个注解加 @ResponseBody
2、springBoot 默认使用 jackson 来把java 对象转化为json 字符串。
二、fast json
1、pom 文件加入fast json 依赖
<dependency> <groupId>com.alibaba</groupId> <artifactId>fastjson</artifactId> <version>1.2.35</version> </dependency>
2、在App 启动类里注入一个@Bean
@Bean public HttpMessageConverters fastJsonHttpMessageConverters() { // 1、需要先定义一个converter 转换器 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter(); // 2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据 FastJsonConfig fastJsonConfig = new FastJsonConfig(); fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat); // 3、在convert 中添加配置信息 fastConverter.setFastJsonConfig(fastJsonConfig); // 4、将convert 添加到converters当中 HttpMessageConverter<?> converter = fastConverter; return new HttpMessageConverters(converter); }
3、测试
使用FastJson 特有的注解来测试;
在实体类里一个Date 类型的属性上加注解 @JSONField(format="yyyy/MM/dd HH:mm")
返回数据看看日期有没有按照上面的格式返回。OK!
4、在controller类上加的注解还使用@RestController
以上是关于关于 SpringBoot 返回对象为 json 字符串时转义问题的主要内容,如果未能解决你的问题,请参考以下文章
请求正常时如何返回json对象,SpringBoot失败时如何返回json错误对象