• 4.Spring Boot完美使用FastJson解析JSON数据


       个人使用比较习惯的json框架是fastjson,所以spring boot默认的json使用起来就很陌生了,所以很自然我就想我能不能使用fastjson进行json解析呢?

           引入fastjson依赖库:

     <dependencies>
    
           <dependency>
    
               <groupId>com.alibaba</groupId>
    
               <artifactId>fastjson</artifactId>
    
               <version>1.2.15</version>
    
        </dependency>

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

           配置fastjon

    支持两种方法:

    第一种方法就是:

    (1)启动类继承extends WebMvcConfigurerAdapter

    (2)覆盖方法configureMessageConverters

    具体代码如下:

    /**
    
     *
    
     * @author blackCatFish--黑鲶鱼
    
     * @version v.0.1
    
     */
    
    @SpringBootApplication
    
    public class ApiCoreApp  extends WebMvcConfigurerAdapter {
    
       
    
        @Override
    
        public voidconfigureMessageConverters(List<HttpMessageConverter<?>>converters) {
    
            super.configureMessageConverters(converters);
    
          
    
            FastJsonHttpMessageConverterfastConverter = newFastJsonHttpMessageConverter();
    
     
    
            FastJsonConfig fastJsonConfig = newFastJsonConfig();
    
            fastJsonConfig.setSerializerFeatures(
    
                    SerializerFeature.PrettyFormat
    
            );
    
            fastConverter.setFastJsonConfig(fastJsonConfig);
    
          
    
            converters.add(fastConverter);
    
        }
    
    }

    第二种方法:

    (1)在App.java启动类中,注入Bean : HttpMessageConverters

    具体代码如下:

    package com.kfit;
    
     
    
    import org.springframework.boot.SpringApplication;
    
    import org.springframework.boot.autoconfigure.SpringBootApplication;
    
    importorg.springframework.boot.autoconfigure.web.HttpMessageConverters;
    
    import org.springframework.context.annotation.Bean;
    
    import org.springframework.http.converter.HttpMessageConverter;
    
     
    
    import com.alibaba.fastjson.serializer.SerializerFeature;
    
    import com.alibaba.fastjson.support.config.FastJsonConfig;
    
    importcom.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
    
     
    
    /**
    
     *
    
     * @author blackCatFish--黑鲶鱼
    
     * @version v.0.1
    
     */
    
    @SpringBootApplication
    
    public class ApiCoreApp {
    
     
    
        @Bean
    
        public HttpMessageConvertersfastJsonHttpMessageConverters() {
    
           FastJsonHttpMessageConverter fastConverter = newFastJsonHttpMessageConverter();
    
           FastJsonConfig fastJsonConfig = newFastJsonConfig();
    
          fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);
    
           fastConverter.setFastJsonConfig(fastJsonConfig);
    
           HttpMessageConverter<?> converter = fastConverter;
    
           return new HttpMessageConverters(converter);
    
        }
    
     
    
        public static void main(String[] args) {
    
           SpringApplication.run(ApiCoreApp.class, args);
    
        }
    
    }

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

    努力提高自己的技术,不忘初心
  • 相关阅读:
    团队编程项目作业2-爬虫豆瓣top250项目代码设计规范
    《团队-爬取豆瓣电影TOP250-设计文档》
    个人编程作业1-GIT应用
    团队-爬取豆瓣Top250-开发环境搭建过程
    课后作业-阅读任务-阅读提问-1
    20170914-构建之法:现代软件工程-阅读笔记
    结对-贪吃蛇开发环境搭建过程
    结对-贪吃蛇游戏设计文档
    结对-结对编程项目作业名称-需求分析
    团队编程项目自我介绍
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9880052.html
Copyright © 2020-2023  润新知