在Springboot中默认的JSON解析框架是jackson
    今天引入alibaba的fastjson,使用@JSONField(serialize=false),让@RestController转换数据给前端的时候序列化莫些字段,发现@JSONField根本起作用
    在网上查阅了一番,发现Springboot使用fastjson需要替换默认的json转换器的
    具体解决方法有两种:
    本文借鉴地址:https://blog.csdn.net/qq_28929589/article/details/79245774
    一、(1)启动类继承extends WebMvcConfigurerAdapter (2)覆盖方法configureMessageConverters
    二、(1)在App.java启动类中,注入Bean : HttpMessageConverters
    第一种方式:
    启动类继承WebMvcConfigurerAdapter,然后对configureMessageConverters方法进行重写
    1 @Override
    2
    3 public void configureMessageConverters(List> converters) {
    4
    5 super.configureMessageConverters(converters);
    6 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    7
    8 FastJsonConfig fastJsonConfig = new FastJsonConfig();
    9 fastJsonConfig.setSerializerFeatures(
    10 SerializerFeature.PrettyFormat
    11 );
    12
    13 fastConverter.setFastJsonConfig(fastJsonConfig);
    14 converters.add(fastConverter);
    15
    16 }
    第二种方式:在App.java启动类中,注入Bean : HttpMessageConverters
    1 @Bean
    2 public HttpMessageConverters fastJsonHttpMessageConverters() {
    3 FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();
    4 FastJsonConfig fastJsonConfig = new FastJsonConfig();
    5 fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    6 fastConverter.setFastJsonConfig(fastJsonConfig);
    7 HttpMessageConverter<?> converter = fastConverter;
    8 return new HttpMessageConverters(converter);
    9 }
    那么这时候在实体类中使用@JSONField(serialize=false),是是此字段就返回了,如果是的话,那么恭喜你配置成功了,其中JSONField的包路径是:com.alibaba.fastjson.annotation.JSONField。
    [fastjson使用@JSONField、@JSONType、SerializeFilter定制序列化](http://blog.csdn.net/liuxiao723846/article/details/52137555)
    使用fastjson进行序列化,就是把JavaBean转换为JSON格式的数据。而且fastjson的序列化高度可控性,可以自己定制序列化。fastjson的定制序列化有很多中实现方式,主要有如下的方式:

    1. 通过@JSONField定制序列化
    2. 通过@JSONType定制序列化
    3. 通过SerializeFilter定制序列化

    1、在实体类上的字段使用@JSONField定制序列化:
    //配置序列化的时候,序列化id
    @JSONField(serialize=false)
    private int id;
    // 配置序列化的名称
    @JSONField(name=”gender”)
    public String sex;
    2、在类上通过@JSONType定制序列化:
    //配置序列化的时候,序列化id sex
    @JSONType(ignores ={“id”, “sex”})
    // 配置序列化的时候,序列化name 和sex
    @JSONType(includes={“name”,”sex”})
    注:注意和@JSONField同的是,@JSONType是配置在类上的,而@JSONField是配置在字段和方法上的。
    3、使用SerializeFilter定制序列化:
    通过SerializeFilter可以使用扩展编程的方式实现定制序列化。fastjson提供了多种SerializeFilter:
    PropertyPreFilter: 根据PropertyName判断是否序列化;
    PropertyFilter: 根据PropertyName和PropertyValue来判断是否序列化;
    NameFilter: 修改Key,如果需要修改Key,process返回值则可;
    ValueFilter: 修改Value;
    BeforeFilter: 序列化时在最前添加内容;
    AfterFilter: 序列化时在最后添加内容

    参考地址:百度快照

    http://cache.baiducontent.com/c?m=GbLESnqw2fAEbFLjAk-h8H5i96TQB1sE5Hmf7fUizSAEoTtTNjg-ukMUqloAwRLm8cyJUGM0WN8Xm7bwmlMIzFVDGSLTWh-ZXnrbM7mPIiP90YeXfXfuvME-xF_ttoVQ_vhq8tfMYPErtIDvP379crJesC_jS6qX09BezMND1Ce&p=882a964f8b9a03f518f1c7710f44&newp=aa77c64ad49b14ff57ee9e341b4392695d0fc20e3ad2d401298ffe0cc4241a1a1a3aecbf2c241402d9c57b6605ad4d59ebf432783d0034f1f689df08d2ecce7e77dd&s=cfcd208495d565ef&user=baidu&fm=sc&query=%40jsonfield+%B2%BB%C9%FA%D0%A7&qid=e292cff200274f73&p1=2