Spring Boot使用FastJson解析JSON数据

作者: 千叶鸟 | 来源:发表于2017-02-21 12:37 被阅读5226次

    文章首发 http://surpass.esy.es

    1.引入fastjson依赖库:

    <!--添加fastjson解析JSON数据-->
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>fastjson</artifactId>
        <version>1.2.16</version>
    </dependency>
    

    2.配置fastjson

    这里要说下很重要的话,官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持4.2以下的版本,一个是FastJsonHttpMessageConverter4支持4.2以上的版本,具体有什么区别暂时没有深入研究。这里也就是说:低版本的就不支持了,所以这里最低要求就是1.2.10+

    方式一:

    • (1)启动类继承WebMvcConfigurerAdapter

    • (2)覆盖方法configureMessageConverters

    具体代码:

    @SpringBootApplication  //  申明让spring boot自动给程序进行必要的配置,等价于以默认属性使用@Configuration,@EnableAutoConfiguration和@ComponentScan
    public class Application extends WebMvcConfigurerAdapter{
    
        @Override
        public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
            super.configureMessageConverters(converters);
    
            //  初始化转换器
            FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter();
            //  初始化一个转换器配置
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
            //  将配置设置给转换器并添加到HttpMessageConverter转换器列表中
            fastConvert.setFastJsonConfig(fastJsonConfig);
    
            converters.add(fastConvert);
        }
    
        public static void main(String[] args) {
            SpringApplication.run(Application.class, args);
        }
    }
    

    方式二:

    • 在配置类或启动类中,注入Bean : HttpMessageConverters
    /**
     * Bean配置管理
     * Created by surpass.wei@gmail.com on 2017/2/21.
     */
    @Configuration
    public class BeanConfig {
    
        /*注入Bean : HttpMessageConverters,以支持fastjson*/
        @Bean
        public HttpMessageConverters fastJsonHttpMessageConverters() {
            FastJsonHttpMessageConverter fastConvert = new FastJsonHttpMessageConverter();
            FastJsonConfig fastJsonConfig = new FastJsonConfig();
            fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
            fastConvert.setFastJsonConfig(fastJsonConfig);
            return new HttpMessageConverters((HttpMessageConverter<?>) fastConvert);
        }
    }
    

    配置完成后,在实体类中使用@JSONField(serialize=false),是不是此字段就不返回了,如果是的话,那么恭喜你配置成功了,其中JSONField的包路径是:com.alibaba.fastjson.annotation.JSONField

    【转】根据 http://412887952-qq-com.iteye.com/blog/2315202 实践整理

    相关文章

      网友评论

        本文标题:Spring Boot使用FastJson解析JSON数据

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