美文网首页
配置使用FastJson

配置使用FastJson

作者: 李姗姗_8ef1 | 来源:发表于2019-01-08 14:13 被阅读0次

    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配置生效。

    相关文章

      网友评论

          本文标题:配置使用FastJson

          本文链接:https://www.haomeiwen.com/subject/qsrvrqtx.html