78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】

【原创文章,转载请注明出处】

 

       个人使用比较习惯的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 2016729下午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 2016729下午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

 

【Spring Boot 系列博客】

76. Spring Boot完美解决(406)Could not find acceptable representation原因及解决方法 

 

75. Spring Boot 定制URL匹配规则【从零开始学Spring Boot 

 

71.mybatis 如何获取插入的id【从零开始学Spring Boot 

 

67. @Transactional的类注入失败【从零开始学Spring Boot 

 

63.JPA/Hibernate/Spring Data概念【从零开始学Spring Boot 

 

61. mybatic insert异常:BindingException: Parameter 'name' not found【从零开始学Spring B 

 

 

60. Spring Boot写后感【从零开始学Spring Boot 

 

 

59. Spring Boot Validator校验【从零开始学Spring Boot 

 

58. Spring Boot国际化(i18n)【从零开始学Spring Boot】 

 

57. Spring 自定义properties升级篇【从零开始学Spring Boot】 

 

56. spring boot中使用@Async实现异步调用【从零开始学Spring Boot】 

 

55. spring boot 服务配置和部署【从零开始学Spring Boot】 

 

54. spring boot日志升级篇—logback【从零开始学Spring Boot】

 

52. spring boot日志升级篇—log4j多环境不同日志级别的控制【从零开始学Spring Boot】 

 

51. spring boot属性文件之多环境配置【从零开始学Spring Boot】

 

50. Spring Boot日志升级篇—log4j【从零开始学Spring Boot】

 

49. spring boot日志升级篇—理论【从零开始学Spring Boot】

 

48. spring boot单元测试restfull API【从零开始学Spring Boot】

 

47. Spring Boot发送邮件【从零开始学Spring Boot】

 

46. Spring Boot中使用AOP统一处理Web请求日志

 

45. Spring Boot MyBatis连接Mysql数据库【从零开始学Spring Boot】

 

44. Spring Boot日志记录SLF4J【从零开始学Spring Boot】

 

43. Spring Boot动态数据源(多数据源自动切换)【从零开始学Spring Boot】

 

42. Spring Boot多数据源【从零开始学Spring Boot】

 

41. Spring Boot 使用Java代码创建Bean并注册到Spring中【从零开始学Spring Boot】

 

40. springboot + devtools(热部署)【从零开始学Spring Boot】 

 

39.4 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.3 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.2. Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

39.1 Spring Boot Shiro权限管理【从零开始学Spring Boot】

 

38 Spring Boot分布式Session状态保存Redis【从零开始学Spring Boot】 

 

37 Spring Boot集成EHCache实现缓存机制【从零开始学Spring Boot】 

 

36 Spring Boot Cache理论篇【从零开始学Spring Boot】

 

35 Spring Boot集成Redis实现缓存机制【从零开始学Spring Boot】 

 

 

更多查看博客: http://412887952-qq-com.iteye.com/

 

posted on 2016-08-03 12:42  疯子123  阅读(386)  评论(0编辑  收藏  举报

导航