配置使用FastJson

2019-01-08  本文已影响0人  李姗姗_8ef1

FastJson是阿里巴巴旗下的一个开源项目之一,专门用来做快速操作Json的序列化与反序列化的组件。

1. 添加依赖

新建项目的过程可以参考使用JPA实现MySQL数据库基本CRUD操作
访问仓库地址:https://mvnrepository.com/artifact/com.alibaba/fastjson
选择最新的版本,注意一定要选最新的版本,否则会出现有些类不支持的情况(我在写代码时,遇到了Cannot resolve symbol ‘...’这种提示,换成新版本的依赖就没问题了,此处着重记录),当然新版本也会淘汰一些,仿照网上写代码遇到问题时可以考虑是否被新版本淘汰了。
我当时的最新版本为1.2.54

点击1.2.54,将红色圈出的依赖复制粘贴到pom.xml中,再根据提示import一下 创建使用JPA实现MySQL数据库基本CRUD操作中的结构和代码,复制代码时注意不同项目间的package及import名称问题

2.配置FastJson

创建FastJsonConfiguration文件,代码如下

package com.example;

import com.alibaba.fastjson.serializer.SerializerFeature;
import com.alibaba.fastjson.support.config.FastJsonConfig;
import com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
import org.springframework.context.annotation.Configuration;
import org.springframework.http.converter.HttpMessageConverter;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurationSupport;

import java.util.List;

/**
 * Created by conan on 2019/1/7.
 */
@Configuration
public class FastJsonConfiguration extends WebMvcConfigurationSupport {
    @Override
    public void configureMessageConverters(List<HttpMessageConverter<?>> converters)
    {
        //调用父类配置
        super.configureMessageConverters(converters);
        //创建消息转换器
        FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
        //创建配置类
        FastJsonConfig fastJsonConfig = new FastJsonConfig();
        //返回内容的过滤
        fastJsonConfig.setSerializerFeatures(
                SerializerFeature.DisableCircularReferenceDetect,
                SerializerFeature.WriteMapNullValue
        );
        fastConverter.setFastJsonConfig(fastJsonConfig);
        //将fastjson添加到视图消息转换器列表内
        converters.add(fastConverter);
    }
}

FastJson SerializerFeatures配置:
WriteMapNullValue:是否输出值为null的字段;
WriteNullListAsEmpty:List字段如果为null,输出为[],而非null;
WriteNullStringAsEmpty: 字符类型字段如果为null,输出为"",而非null;
DisableCircularReferenceDetect:消除对同一对象循环引用的问题,默认为false(如果不配置有可能会进入死循环);
WriteNullBooleanAsFalse:Boolean字段如果为null,输出为false,而非null。

3.配置效果

数据库新建一行GroupName值为null的数据

启动本程序
访问地址:http://127.0.0.1:8080/user/list
网页看到的结果为 更改FastJson配置
        fastJsonConfig.setSerializerFeatures(
                SerializerFeature.DisableCircularReferenceDetect,
                SerializerFeature.WriteMapNullValue,
                SerializerFeature.WriteNullStringAsEmpty
        );
重新启动程序,刷新网页,结果变为

FastJson配置生效。

上一篇下一篇

猜你喜欢

热点阅读