Spring Boot使用FastJson解析JSON数据的方法

 更新时间:2017年02月23日 16:43:38   转载 作者:千叶鸟  
本篇文章主要介绍了Spring Boot使用FastJson解析JSON数据的方法,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧

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

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

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • java 中模式匹配算法-KMP算法实例详解

    java 中模式匹配算法-KMP算法实例详解

    这篇文章主要介绍了java 中模式匹配算法-KMP算法实例详解的相关资料,需要的朋友可以参考下
    2017-06-06
  • 线程池中使用spring aop事务增强

    线程池中使用spring aop事务增强

    这篇文章主要介绍了线程池中使用spring aop事务增强,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2020-02-02
  • 了解Java虚拟机JVM的基本结构及JVM的内存溢出方式

    了解Java虚拟机JVM的基本结构及JVM的内存溢出方式

    这篇文章主要介绍了Java虚拟机JVM的基本结构及JVM的内存溢出方式,涉及到Java内存分配相关方面的知识,需要的朋友可以参考下
    2016-01-01
  • 浅谈Spring Boot 属性配置和自定义属性配置

    浅谈Spring Boot 属性配置和自定义属性配置

    这篇文章主要介绍了浅谈Spring Boot 属性配置和自定义属性配置,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-03-03
  • @Autowired注入为null问题原因分析

    @Autowired注入为null问题原因分析

    这篇文章主要介绍了@Autowired注入为null问题原因分析吗,小编觉得挺不错的,对日后比较有帮助,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-11-11
  • spring boot和spring cloud之间的版本关系

    spring boot和spring cloud之间的版本关系

    这篇文章主要介绍了spring boot和spring cloud之间的版本关系,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-08-08
  • 面试题:Java中如何停止线程的方法

    面试题:Java中如何停止线程的方法

    这篇文章主要介绍了Java中如何停止线程的方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-09-09
  • spring 整合mybatis后用不上session缓存的原因分析

    spring 整合mybatis后用不上session缓存的原因分析

    因为一直用spring整合了mybatis,所以很少用到mybatis的session缓存。什么原因呢?下面小编给大家介绍spring 整合mybatis后用不上session缓存的原因分析,需要的朋友可以参考下
    2017-02-02
  • 使用java获取md5值的两种方法

    使用java获取md5值的两种方法

    本篇文章是对使用java获取md5值的两种方法进行了详细的分析介绍,需要的朋友参考下
    2013-06-06
  • 如何测试Java类的线程安全性

    如何测试Java类的线程安全性

    这篇文章主要介绍了如何测试Java类的线程安全性,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下
    2019-12-12

最新评论