MappingJackson2對日期格式轉化


  在 Spring3.0 以前大部分會用 MappingJackson 對 Json 格式數據做轉化,Spring3.0 以后很多在使用 MappingJackson2 對 Json 格式數據做轉化,但MappingJackson2 如果不對日期格式的數據做處理,傳到前台的數據是 Long 類型的數據。

  網上對 MappingJackson2 的日期格式轉化有很多辦法,Jackson2自帶的就有注解方式,還有通過配置 XML 進行轉換的,我都一一進行了測試,通過配置 XML 是通過對 ObjectMapper 更改達成目的,但會有一個問題,就是向前台傳送字符串會自動給數據加上斜杠,當然如果全部傳對象的話,是不存在這個問題。但有時向前台傳字符串是不可避免的。有斜杠看着很不舒服。

  我現在是通過使用 ObjectMapper 對象,做了一個工具類,向前台返回時,把所有的對象轉換成字符串或 Map / List 類型數據。代碼如下: 

import com.fasterxml.jackson.core.JsonProcessingException;
import com.fasterxml.jackson.databind.ObjectMapper;

import java.text.DateFormat;
import java.text.SimpleDateFormat;

public class JsonConvertUtils {

private static final Long serialVersionUID = 1L;

private static final ObjectMapper jsonMap = new ObjectMapper();

/**
* @description 對象轉成字符串
* @param object
* @return
*/
public static String objectConvertStringForDate(Object object) {
try {
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jsonMap.setDateFormat(sdf);
return jsonMap.writeValueAsString(object);
} catch (JsonProcessingException e) {
e.printStackTrace();
}
return null;
}

/**
* 轉List/Map類型的數據,單個實體類不要用此方法,轉回去之后還是會顯示Long類型日期
* @param cal
* @return 對象
*/
public static Object objectConvertDate(Object cal) {
try {
DateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
jsonMap.setDateFormat(sdf);
String returnValue = jsonMap.writeValueAsString(cal);
return jsonMap.readValue(returnValue,cal.getClass());
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}
有不對的地方望大家指正

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM