78. Spring Boot完美使用FastJson解析JSON數據【從零開始學Spring Boot】

【原創文章,轉載請註明出處】java

 

       我的使用比較習慣的json框架是fastjson,因此spring boot默認的json使用起來就很陌生了,因此很天然我就想我能不能使用fastjson進行json解析呢?web

       引入fastjson依賴庫:spring

  <dependencies>sql

        <dependency>數據庫

           <groupId>com.alibaba</groupId>json

           <artifactId>fastjson</artifactId>緩存

           <version>1.2.15</version>springboot

    </dependency>restful

       這裏要說下很重要的話,官方文檔說的1.2.10之後,會有兩個方法支持HttpMessageconvert,一個是FastJsonHttpMessageConverter,支持4.2如下的版本,一個是FastJsonHttpMessageConverter4支持4.2以上的版本,具體有什麼區別暫時沒有深刻研究。這裏也就是說:低版本的就不支持了,因此這裏最低要求就是1.2.10+mybatis

       配置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/

相關文章
相關標籤/搜索