1. 程式人生 > >解析Json之MappingJackson2HttpMessageConverter使用方法

解析Json之MappingJackson2HttpMessageConverter使用方法

眾所周知,用Spring cloud構建微服務架構時,後臺接收controller通常用@RestController註解。

@Restcontroller是@Controller和@ResponseBody的結合體。

這樣就將後臺返回的Java物件轉換為Json字串傳遞給前臺,

但是當資料庫欄位為date型別時,@ResponseBody註解在轉換日期型別時會預設把日期轉換為時間戳(例如: date:2017-10-25  轉換為 時間戳:15003323990)。

此時有兩種方式可以解決日期轉換Json問題:

1、(不推薦)區域性修改,自定義註解進行將日期型別轉換為Date型別。

2、(強烈推薦)全域性修改,用MappingJackson2HttpMessageConverter配置在XML(SpringMVC)或者配置在Application.Java啟動類(Spring boot、Spring cloud)。

配置在Application.Java啟動類(Spring boot、Spring cloud):

  1. @Bean
  2.     public MappingJackson2HttpMessageConverter getMappingJackson2HttpMessageConverter() {  
  3.         MappingJackson2HttpMessageConverter mappingJackson2HttpMessageConverter = new MappingJackson2HttpMessageConverter();  
  4.         //設定日期格式
  5.         ObjectMapper objectMapper = new
     ObjectMapper();  
  6.         SimpleDateFormat smt = new SimpleDateFormat("yyyy-MM-dd");  
  7.         objectMapper.setDateFormat(smt);  
  8.         mappingJackson2HttpMessageConverter.setObjectMapper(objectMapper);  
  9.         //設定中文編碼格式
  10.         List<MediaType> list = new ArrayList<MediaType>();  
  11.         list.add(MediaType.APPLICATION_JSON_UTF8);  
  12.         mappingJackson2HttpMessageConverter.setSupportedMediaTypes(list);  
  13.         return mappingJackson2HttpMessageConverter;  
  14.     }  

注意:Spring3.x 用MappingJacksonHttpMessageConverter

   Spring4.x 用MappingJackson2HttpMessageConverter

配置在XML(SpringMVC)

  1. <mvc:annotation-driven>
  2.     <mvc:message-converters>
  3.         <beanclass="org.springframework.http.converter.json.MappingJacksonHttpMessageConverter">
  4.             <propertyname="objectMapper"ref="customObjectMapper"></property>
  5.         </bean>
  6.     </mvc:message-converters>
  7. </mvc:annotation-driven>
  1. Java程式碼中  
  1. @Component("customObjectMapper")    
  2. publicclass CustomObjectMapper extends ObjectMapper {    
  3.     public CustomObjectMapper() {    
  4.         CustomSerializerFactory factory = new CustomSerializerFactory();    
  5.         factory.addGenericMapping(Date.classnew JsonSerializer<Date>() {    
  6.             @Override
  7.             publicvoid serialize(Date value, JsonGenerator jsonGenerator,    
  8.                     SerializerProvider provider) throws IOException, JsonProcessingException {    
  9.                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");    
  10.                 jsonGenerator.writeString(sdf.format(value));    
  11.             }    
  12.         });    
  13.         this.setSerializerFactory(factory);    
  14.     }    
  15. }    

注意:如果想要單個bean的某個日期欄位顯示年月日時分秒的話,只需要在對應日期的get方法上新增@JsonFormat(pattern="yyyy-MM-dd HH:mm:ss")即可。

相關推薦

解析JsonMappingJackson2HttpMessageConverter使用方法

眾所周知,用Spring cloud構建微服務架構時,後臺接收controller通常用@RestController註解。@Restcontroller是@Controller和@ResponseBody的結合體。這樣就將後臺返回的Java物件轉換為Json字串傳遞給前臺,

json-lib解析json二維JSONArray

我們 方式 數據 利用 2.2.3 .cn ima 解析json 有一種 在接口測試中,不管是接口的請求報文還是接口的響應報文,數據全部使用json,在工作中避免不了去解析響應報文以獲取某個鍵的值,解析josn有兩種方式,一種是利用jackson,還有一種就是利用json-

QT使用QJson生成解析Json資料的方法

QT中使用json還是比較方便的,下面用例子直接說明 舉例子之前首先推薦一個線上解析json格式的網站,具體格式用法如下圖所示: 之後根據這個格式進行json資料解析。 QT使用json需要包含的標頭檔案 #include<qjsondocument.h> #include<qj

解析JSON資料格式

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式。JSON採用完全獨立於語言的文字格式,這些特性使JSON成為理想的資料交換語言。易於人閱讀和編寫,同時也易於機器解析和生成。 基礎結構 JSON建構於兩種結構: 1.“名稱/值”對的集合(A col

shell解析jsonjq工具

 工具下載地址及各版本的安裝方式,我常用的是把工具包下載下來直接用,不安裝: https://stedolan.github.io/jq/manual/#example1 test.json {     "sys": {         "valid": "true",  

C#解析json檔案的方法

C# 解析 json   JSON(全稱為JavaScript Object Notation) 是一種輕量級的資料交換格式。它是基於JavaScript語法標準的一個子集。 JSON採用完全獨立於語言的文字格式,可以很容易在各種網路、平臺和程式之間傳輸。JS

C++ 解析Json(jsoncpp)使用方法

JSON(JavaScript Object Notation) 是一種輕量級的資料交換格式,和xml類似,本文主要對VS2008中使用Jsoncpp解析json的方法做一下記錄。Jsoncpp是個跨平臺的開源庫,下載地址:http://sourceforge.net/p

解析jsonnet.sf.json

下載地址 本次使用版本:http://sourceforge.net/projects/json-lib/files/json-lib/json-lib-1.1/ 最新版本:http://source

delphi解析json資料的方法

function TFrm_Main.getquery: string;  var   vjson:ISuperObject;     //Vitem   s1,s2:string;   PathStr:string;   ch,ph:string;   i,j:integer;   mylist:TStri

Gson-解析json利器

Gson(又稱Google Gson)是Google公司釋出的一個開放原始碼的Java庫,主要用途為序列化Java物件為JSON字串,或反序列化JSON字串成Java物件。GSON核心jar包不到1M,非常精簡,但提供的功能無疑是非常強大的,如果使用JDK自帶的JSON解析

Java解析json檔案的方法--直接拷貝可以使用

import java.util.ArrayList; import java.util.Iterator; import java.util.List; import net.sf.json.JSONArray; import net.sf.json.JSONObject; public class

python爬蟲--解析網頁幾種方法正則表達式

ima 3.5 ref string tex href quest user lin 1、正則表達式 正則表達式是一個特殊的字符序列,它能幫助你方便的檢查一個字符串是否與某種模式匹配。 re 模塊使 Python 語言擁有全部的正則表達式功能。 re.match函數 re.

python爬蟲--解析網頁幾種方法BeautifulSoup

first div xml html find 抓取 XML 格式 速度慢 析取 一.解析器概述 soup=BeautifulSoup(response.body) 對網頁進行析取時,並未規定解析器,此時使用的是python內部默認的解析器“html.parser”

C#將Json解析成DateTable的方法

設計 功能 lec 獲取數據 one 分享圖片 ring bsp cas 本文實例講述了C#將Json解析成DateTable的方法。分享給大家供大家參考。具體實現方法如下: 代碼如下: #region 將 Json 解析成 DateTable /// /// 將

JavaScript中使用eval()方法解析json

括號 javascrip pass 後臺 {} ava eval() 一個 java 最近在js用到了eval()方法,在這裏做個筆記 當時是這麽用的:data = eval("("+data+")"); data為後臺向前臺傳送的一個json串,所以這裏需要使用eva

Spring註解開發-全面解析常用註解使用方法生命周期

統一 ota tco conf struct 賦值 組件註冊 功能 pri 本文github位置:https://github.com/WillVi/Spring-Annotation/ 往期文章:Spring註解開發-全面解析常用註解使用方法之組件註冊 bean生命周期

java解析和組裝json以及一些方法的理解

content 獲取 con imei title 報錯 bsp ava 取值 這是一個json格式的字符串 第一種情況(簡單格式) String result = "{\"name\":\"小明\",\"age\":\"12\"}";JSONObject json =

ASP解析Json最簡單的方法

.get .proto val json his 解析 字符 json字符串 解析json <% Dim json, obj json = "{a:""aaa"", b:{ name:""bb"", value:""text"" }, c:[""

Java執行緒Threadyeild方法解析

轉載請標明出處: http://blog.csdn.net/hesong1120/article/details/79032252 本文出自:hesong的專欄 Java執行緒Thread的yeild方法可能在日常使用中比較少出現,那它是做什麼用的,我們先查查官方文

QT使用QJson生成解析Json數據的方法

.cn 元素 details mdt toa bytearray ble json生成 判斷 QT中使用json還是比較方便的,下面用例子直接說明 舉例子之前首先推薦一個在線解析json格式的網站,具體格式用法如下圖所示: 之後根據這個格式進行json數據解析。 QT使用