关于 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 字符串时转义问题的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot常用注解解析

springboot返回json

请求正常时如何返回json对象,SpringBoot失败时如何返回json错误对象

Spring Boot:将 JSON 响应包装在动态父对象中

SpringBoot之封装json对象返回json数据

springboot 怎么接收jsonobject