javascript
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 2016年7月29日下午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 2016年7月29日下午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/
?
轉載于:https://www.cnblogs.com/hehehaha/p/6147060.html
與50位技術專家面對面20年技術見證,附贈技術全景圖總結
以上是生活随笔為你收集整理的78. Spring Boot完美使用FastJson解析JSON数据【从零开始学Spring Boot】的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Python学习总结5:数据类型及转换
- 下一篇: bzoj4525[Usaco2016 J