文档章节

在springboot中添加jsonConverter

流光韶逝
 流光韶逝
发布于 2018/02/02 11:07
字数 474
阅读 563
收藏 6

spring默认支持的是jackson2的json解析器.现在大部分人都习惯了fastJson的解析器.现在简单的说下如何配置json解析器

jackson2

配置如下:

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

 //JackSon 配置
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        Jackson2ObjectMapperBuilder builder = new Jackson2ObjectMapperBuilder();
        builder.serializationInclusion(JsonInclude.Include.NON_NULL);
        ObjectMapper objectMapper = builder.build();
        SimpleModule simpleModule = new SimpleModule();
        simpleModule.addSerializer(Long.class, ToStringSerializer.instance);
        objectMapper.registerModule(simpleModule);
        objectMapper.configure(MapperFeature.PROPAGATE_TRANSIENT_MARKER, true);// 忽略 transient 修饰的属性
        converters.add(new MappingJackson2HttpMessageConverter(objectMapper));
        super.configureMessageConverters(converters);
    }
}

可以使用@JsonFormat(shape = JsonFormat.Shape.STRING,pattern = "yyyy-MM-dd HH:mm:ss", locale = "zh", timezone = "GMT+8")来格式化Date数据的输出. 默认日期是0时区的.早上8点会成为早上0点 对于@Transient注解是支持的,不会输出该注解修饰的字段

fastjson

@Configuration
public class WebConfig extends WebMvcConfigurerAdapter {

   @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
        super.configureMessageConverters(converters);
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
      fastJsonConfig.setSerializerFeatures(SerializerFeature.WriteNullStringAsEmpty,SerializerFeature.WriteNullNumberAsZero,
                SerializerFeature.WriteNullBooleanAsFalse,SerializerFeature.WriteNullListAsEmpty,
                SerializerFeature.WriteEnumUsingToString,SerializerFeature.PrettyFormat,
               //禁止循环引用,否则会出现   {"$ref":"$.data.giveAuthorList[0].goods"}
                SerializerFeature.DisableCircularReferenceDetect,
    //全局date 默认输出格式为"yyyy-MM-dd HH:mm:ss"  可通过修改com.alibaba.fastjson.Json.DEFFAULT_DATE_FORMAT设置
                SerializerFeature.WriteDateUseDateFormat
);

        fastConverter.setFastJsonConfig(fastJsonConfig);
        converters.add(fastConverter);
    }
}

该配置支持1.2.10以后的版本,如果有问题,请升级fastjson的版本. 可以使用@JSONField来配置序列化的属性

@JSONField(format = "yyyy-MM-dd HH:mm:ss")

对于@Transient注解是不支持的,还是会输出该注解修饰的字段;

fastJsonConfig.setSerializerFeatures(SerializerFeature... serializerFeatures),这个方法配置序列化的特性.可传入多个特性.之前只有一个SerializerFeature.PrettyFormat,所以字段值为空就无法输出该字段. 2月5号发现后添加了一些处理空值的特性,和

  • SerializerFeature.WriteEnumUsingToString 处理枚举,输出toString().
  • SerializerFeature.WriteDateUseDateFormat 处理date类型数据,开始全局默认转化,默认输出格式为"yyyy-MM-dd HH:mm:ss" 可通过修改com.alibaba.fastjson.Json.DEFFAULT_DATE_FORMAT设置

© 著作权归作者所有

流光韶逝
粉丝 22
博文 122
码字总数 143196
作品 0
济南
程序员
私信 提问
SpringBoot 学习二:操作数据库

本文将从以下几个方面介绍: 前言 配置数据源 SpringBoot 整合 Mybatis SpringBoot 整合 JdbcTemplate SpringBoot 整合 Redis 前言 在上篇文章 SpringBoot 学习一 中已经学习了 SpringBoot的...

tsmyk0715
2018/09/26
619
0
恒宇少年/spring-boot-chapter

简书整套文档以及源码解析 专题 专题名称 专题描述 001 Spring Boot 核心技术 讲解SpringBoot一些企业级层面的核心组件 002 Spring Cloud 核心技术 对Spring Cloud核心技术全面讲解 003 Quer...

恒宇少年
2018/04/19
0
0
SpringBoot指定服务项目名

使用不同SpringBoot版本,指定访问项目路径的项目名,使用的配置也不一样 SpringBoot版本 配置 1.x server.context-path=/demo 2.x server.servlet.context-path=/demo 以下为本地测试可行代...

Vincent-Duan
09/05
24
0
Springboot之自动注册DispatcherServlet

注意:Springboot的版本是2.0.5.release。 Springboot中我们引入spring-boot-starter-web依赖后,web就自动配置好了,在web.xml的年代,我们需要在web.xml中手动配置DispatcherServlet,但是S...

克虏伯
06/23
88
0
SpringBoot 入门实例

SpringBoot 是由 pivotal 提供的 Java 开发框架,伴随着 spring 4.0 版本一起发布,旨在简化 Spring 项目的初始化及开发过程,框架本身为开发过程提供了大量的默认配置,当然我们也可以通过简...

Aotian
2018/05/29
0
0

没有更多内容

加载失败,请刷新页面

加载更多

CSS--列表

一、列表标识项 list-style-type none:去掉标识项 disc:默认实心圆 circle:空心圆 squire:矩形 二、列表项图片 list-style-img: 取值:url(路径) 三、列表项位置 list-style-position:...

wytao1995
今天
6
0
linux 命令-文本比较comm、diff、patch

本文原创首发于公众号:编程三分钟 今天学了三个文本比较的命令分享给大家。 comm comm 命令比较相同的文本 $ cat charabc$ cat chardiffadc 比如,我有两个文件char和chardiff如上,...

编程三分钟
今天
7
0
QML教程

https://blog.csdn.net/qq_40194498/article/category/7580030 https://blog.csdn.net/LaineGates/article/details/50887765...

shzwork
今天
5
0
HA Cluster之5

对于使用heartbeat v2版的CRM配置的集群信息都是保存在一个名为cib.xml的配置文件中,存放在/var/lib/heartbeat/crm/下。CIB:Cluster Information Base,由于xml文件配置不是那么方便,所以...

lhdzw
今天
6
0
玩转Redis-Redis基础数据结构及核心命令

  《玩转Redis》系列文章主要讲述Redis的基础及中高级应用,文章基于Redis5.0.4+。本文主要讲述Redis的数据结构String,《玩转Redis-Redis基础数据结构及核心命令》相关操作命令为方便对比...

zxiaofan666
今天
11
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部