【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  Angel  -- 守护天使
 *  @version  v.0.1
 *  @date  2016 7 29 下午 7:06:11
 */
@SpringBootApplication
public  class  ApiCoreApp   extends  WebMvcConfigurerAdapter {
   
     @Override
     public  void   configureMessageConverters (List<HttpMessageConverter<?>>  converters ) {
         super .configureMessageConverters( converters );
      
        FastJsonHttpMessageConverter  fastConverter  =  new  FastJsonHttpMessageConverter();
 
        FastJsonConfig  fastJsonConfig  =  new  FastJsonConfig();
         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;
import  org.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;
import  com.alibaba.fastjson.support.spring.FastJsonHttpMessageConverter;
 
/**
 *
 *  @author  Angel  -- 守护天使
 *  @version  v.0.1
 *  @date  2016 7 29 下午 7:06:11
 */
@SpringBootApplication
public  class  ApiCoreApp {
 
     @ Bean
     public  HttpMessageConverters fastJsonHttpMessageConverters() {
       FastJsonHttpMessageConverter  fastConverter  =  new  FastJsonHttpMessageConverter();
       FastJsonConfig  fastJsonConfig  =  new  FastJsonConfig();
        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。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值