zoukankan      html  css  js  c++  java
  • 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。

    努力提高自己的技术,不忘初心
  • 相关阅读:
    multipart/form-data同时传递文本和多文件参数controller接收
    sonar配置记录一下经常找不到
    神经网络分类知识蒸馏
    jconsole监听JVM
    Cocos2dx在安卓平台下获取到assets目录下文件的绝对路径
    打印100以内的质数及优化
    VBA调用百度翻译API
    VBA调用百度智能云的文字识别获取图片中的数字
    象棋的思考方法讨论
    やさしい日本語2019 学习方法
  • 原文地址:https://www.cnblogs.com/blackCatFish/p/9880052.html
Copyright © 2011-2022 走看看