知识点

相关文章

更多

最近更新

更多

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);
}

 


相关问答

更多
  • 建议你这样试试看: 1. 在 Eclipse 中新一个 maven 工程。 2. 修改 pom.xml 文件添加如下内容: 3. org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-actuator org.springframework.bo ...
  • 如果你有一定spring的基础的话可以看一下spring技术内幕这本书,这本书解释了好多spring里面的原理的东西,他拿3.0来讲只是讲了一点点新特性而已,大部分没有全讲完的.而Javaee那本书的话翻译质量不咋地,而且国外评论好像不怎么好
  • 先学spring framework吧,把spring 的原理,配置那些东西学会了,理解了再去用spring boot 很容易上手,其实spring boot 就是把很多spring 的配置都简化了,很多东西在properties配置文件里写了之后,spring boot 就会自动帮你把相关的bean配置上,例如你在配置文件里把数据库连接的相关地址,用户,密码配好后,spring boot就会自动帮你把数据库连接池配置好,当然你也可以不用他提供的自动配置功能,完全可以按照你的需求去集成其他的例如dbcp,c ...
  • spring
  • 实际上,没有。 您不需要数据库来存储用户数据。 它存储在Stormpath中,您可以通过Stormpath API与您的用户数据进行交互。 Spring Boot集成使得使用Stormpath变得非常容易。 在Java SDK项目中 ,有一个教程部分,它以最基本的Spring Boot应用程序启动,并指导您使用全面的Spring Security角色和权限结构与Stormpath集成。 这里的文档中也有很多好的信息。 完全披露:我为Stormpath工作。 最好, 米卡 Actually, no. You ...
  • 你可以编写自己的http消息转换器。 由于您使用的是spring引导,因此很容易:只需从AbstractHttpMessageConverter扩展自定义转换器并使用@Component注释标记该类即可。 从春季文档 : 您可以通过在Spring Boot上下文中简单添加该类型的Bean来贡献其他转换器。 如果您添加的bean是默认包含的类型(如用于JSON转换的MappingJackson2HttpMessageConverter),那么它将替换默认值。 这是一个简单的例子: @Component pub ...
  • 我个人的建议是肯定使用Spring Boot的原因很多。 首先是Boot是“Spring的未来”。 有了这个话,我想说的是,通过Boot,您可以受益于Spring社区的许多承诺,今天的大多数Spring项目都与Boot完全集成,即使是社区也开始开发基于Boot的许多应用程序。 例如对于管理和监视我可以建议看到Spring Boot Admin 使用弹簧启动,您可以受益于非常好的和有用的功能,如执行器和远程管理和监控,可以改善您的应用程序与生产就绪功能非常有用。 非常好的和强大的属性和配置控件,您可以使用ap ...
  • Spring Boot是独一无二的弹簧装置,包含电池。 如果你使用它,你会浪费更少的时间在非功能上,因为你会免费获得很多东西。 与经典的Spring设置相比,我观察到的优点列表(当然,还有更多,请查看Spring Boot网站): 依赖关系管理 - 常用库的版本是预先选定的,并且可以分组到您可以包含在项目中的不同入门POM中。 通过选择一个Spring Boot版本,您可以隐式选择几十个依赖项,否则您将不得不自行选择和协调自己 自动配置 - 您不必手动配置分派器servlet,静态资源映射,属性源加载器,消 ...
  • 创建自定义JsonDeserializer: import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.JsonProcessingException; import com.fasterxml.jackson.databind.DeserializationContext; import com.fasterxml.jackson.databind.JsonDeserializer; import com ...