IDEA 使用fastjson解决乱码 swagger访问接口正常,直接访问浏览器接口返回乱码

举报
小马哥学JAVA 发表于 2023/02/18 17:51:53 2023/02/18
【摘要】 目录原因:解决代码:原因:最近遇到的问题,重新搭建java项目的时候没有发现这个问题,同事使用的时候发现的问题,现在记录一下解决的过程,使用fastjson解决乱码解决代码:@Configurationpublic class FastJsonConfig {   @Bean   public HttpMessageConverters fastJsonHttpMessageConverte...

目录


原因:

解决代码:


原因:

最近遇到的问题,重新搭建java项目的时候没有发现这个问题,同事使用的时候发现的问题,现在记录一下解决的过程,

使用fastjson解决乱码

解决代码:

@Configuration

public class FastJsonConfig {

   @Bean

   public HttpMessageConverters fastJsonHttpMessageConverters() {

       //用字段名作为序列化和反序列化的key值

       TypeUtils.compatibleWithFieldName = true;

       //指定时区

       TimeZone.setDefault(TimeZone.getTimeZone("GMT+8"));

       //替换springboot的json框架为fastjson

       FastJsonHttpMessageConverter fastJsonHttpMessageConverter = new FastJsonHttpMessageConverter();

       com.alibaba.fastjson.support.config.FastJsonConfig fastJsonConfig = new com.alibaba.fastjson.support.config.FastJsonConfig();

       // 空值特别处理

       // WriteNullListAsEmpty 将Collection类型字段的字段空值输出为[]

       // WriteNullStringAsEmpty 将字符串类型字段的空值输出为空字符串 ""

       // WriteNullNumberAsZero 将数值类型字段的空值输出为0

       // WriteNullBooleanAsFalse 将Boolean类型字段的空值输出为false

       fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat, SerializerFeature.WriteNullListAsEmpty,

               SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteNullNumberAsZero,SerializerFeature.WriteNullBooleanAsFalse);

       List fastMediaTypes = new ArrayList<>();

       fastMediaTypes.add(MediaType.APPLICATION_JSON_UTF8);

       fastJsonHttpMessageConverter.setSupportedMediaTypes(fastMediaTypes);

       fastJsonHttpMessageConverter.setFastJsonConfig(fastJsonConfig);

       HttpMessageConverter converter = fastJsonHttpMessageConverter;

       return new HttpMessageConverters(converter);

   }

}

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。