Spring Boot使用FastJson解析JSON数据

2019-03-21 23:01|来源: 网路

Spring Boot默认使用jackson,国内很多人比较习惯用fastjson。所以我们看一下怎么在spring boot 中使用fastjson


注:官方文档说的1.2.10以后,会有两个方法支持HttpMessageconvert,一个是FastJsonHttpMessageConverter,支持spring 4.2以下的版本,一个是FastJsonHttpMessageConverter4支持spring 4.2以上的版本


引入FastJson

<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>fastjson</artifactId>
    <version>1.2.44</version>
</dependency>


配置FastJson

添加FastJson支持第一种方式

继承WebMvcConfigurerAdapter类,在configureMessageConverters方法中加入FastJsonconvert 转换消息的对象

@Override
public void configureMessageConverters(List<HttpMessageConverter<?>> converters) {
    super.configureMessageConverters(converters);

    /**
     * 添加FastJson支持第一种方式
     * 继承WebMvcConfigurerAdapter类,在configureMessageConverters方法中加入FastJsonconvert 转换消息的对象
     */
    // 1、需要定义一个 convert 转换消息的对象;
    FastJsonHttpMessageConverter fastJsonConverter = new FastJsonHttpMessageConverter();

    //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

    //3、在convert中添加配置信息.
    fastJsonConverter.setFastJsonConfig(fastJsonConfig);

    //4、将convert添加到converters当中.
    converters.add(fastJsonConverter);
}


添加FastJson支持第二种方式
使用Bean注入的方式把FastJsonHttpMessageConverter添加到HttpMessageConverter

/**
 * 添加FastJson支持第二种方式
 * 使用Bean注入的方式把FastJsonHttpMessageConverter添加到HttpMessageConverter
 * @return
 */
@Bean
public HttpMessageConverters fastJsonHttpMessageConverters() {
    // 1、需要定义一个 convert 转换消息的对象;
    FastJsonHttpMessageConverter fastConverter = new FastJsonHttpMessageConverter();

    //2、添加fastJson 的配置信息,比如:是否要格式化返回的json数据;
    FastJsonConfig fastJsonConfig = new FastJsonConfig();
    fastJsonConfig.setSerializerFeatures(SerializerFeature.PrettyFormat);

    //3、在convert中添加配置信息.
    fastConverter.setFastJsonConfig(fastJsonConfig);

    HttpMessageConverter<?> converter = fastConverter;
    return new HttpMessageConverters(converter);
}

 


相关问答

更多

springboot 返回json问题

第一个问题 不加responsebody的话,应该是不行的,因为spring mvc的话,默认会根据controller的返回值去映射view,加了responsebody就不会去映射view而是直接返回到response的body里面 第二个问题 一般的restfule接口或者ajax调用,都要求返回的是json格式的字符串,这样方便解析。如果是controller里面返回的是字符串,那么response就直接将字符串返回,如果是对象,那么需要使用一些格式化工具,将java对象转为字符串在返回。 ...

spring springbuffer springbilder的区别

大概说一下: Spring 是一个“引擎” Spring MVC 是基于 Spring 的一个 MVC 框架 Spring Boot 是基于 Spring4 的条件注册的一套快速开发整合包 Spring 最初利用“工厂模式”( DI )和“代理模式”( AOP )解耦应用组件。大家觉得挺好用

spring和spring security的区别

spring是一整套应用程序框架,也是一种设计思想,他实现了很多实用工具,开发者直接使用这些工具可以提高开发速度,减少代码编写量,sping最大的用途是进行对象间的解耦操作,可实现设计松散耦合的应用程序系统,以便达到更高的可维护性和可扩展性能。 spring security是基于sping core的一个具体工具实现,主要用来管理应用程序的安全性,并提供了一组用户权限的解决方案。 简单点说,以一个web应用程序举例,sping框架负责整个应用程序的构架,spring seurity负责用户登录和 ...

谈谈spring是如何实现的?

Spring 是一个开源框架,是为了解决企业应用程序开发复杂性而创建的。框架的主要优势之一就是其分层架构,分层架构允许您选择使用哪一个组件,同时为 J2EE 应用程序开发提供集成的框架。 在这篇由三部分组成的 Spring 系列 的第 1 部分中,我将介绍 Spring 框架。我先从框架底层模型的角度描述该框架的功能,然后将讨论两个最有趣的模块:Spring 面向方面编程(AOP)和控制反转 (IOC) 容器。接着将使用几个示例演示 IOC 容器在典型应用程序用例场景中的应用情况。这些示例还将成为 ...

puwer-spring

1.1.1 Spring是什么 Spring是一个开源的轻量级Java SE(Java 标准版本)/Java EE(Java 企业版本)开发应用框架,其目的是用于简化企业级应用程序开发。应用程序是由一组相互协作的对象组成。而在传统应用程序开发中,一个完整的应用是由一组相互协作的对象组成。所以开发一个应用除了要开发业务逻辑之外,最多的是关注如何使这些对象协作来完成所需功能,而且要低耦合、高内聚。业务逻辑开发是不可避免的,那如果有个框架出来帮我们来创建对象及管理这些对象之间的依赖关系。可能有人说了,比 ...