1. 程式人生 > >帶有java.util.Date型別的實體類轉成json物件

帶有java.util.Date型別的實體類轉成json物件

有時專案中會遇到這樣的場景:

實體類需要轉換成json,然後傳給前臺或者其他專案裡,如果實體類裡包含java.util.Date型別的屬性,轉換後,會變成這樣(如果沒做任何處理)

            "receiveTime": {
                "date": 23,
                "day": 1,
                "hours": 17,
                "minutes": 51,
                "month": 4,
                "seconds": 21,
                "time": 1463997081061,
                "timezoneOffset": -480,
                "year": 116
            }

然而實體類裡又不想把日期型別的屬性改成字串型別,我們可以寫一個方法,來實現這一功能
public class JsonDateValueProcessor implements JsonValueProcessor {

    private String format = DateUtils.defaultDateTimeFormat;   
    
    @Override
    public Object processArrayValue(Object value, JsonConfig config) {
        return process(value); 
    }

    @Override
    public Object processObjectValue(String arg0, Object value, JsonConfig config) {
         return process(value);  
    }
    
    private Object process(Object value){   

        //遇到型別為日期的,就自動轉換成“yyyy-MM-dd HH:mm:ss”格式的字串
        if(value instanceof Date){   
            SimpleDateFormat sdf = new SimpleDateFormat(format,Locale.UK);   
            return sdf.format(value);   
        }   
        return value == null ? "" : value.toString();   
    }   
}

實體類需要轉換的地方

        JsonConfig jsonConfig = new JsonConfig();
        jsonConfig.registerJsonValueProcessor(Date.class , new JsonDateValueProcessor());
        JSONObject signalJson = JSONObject.fromObject(signal,jsonConfig);

這樣就完美的解決了問題

結果如下:

"receiveTime": "2016-05-23 18:15:06"


相關推薦

帶有java.util.Date型別實體json物件

有時專案中會遇到這樣的場景: 實體類需要轉換成json,然後傳給前臺或者其他專案裡,如果實體類裡包含java.util.Date型別的屬性,轉換後,會變成這樣(如果沒做任何處理) "receiveTime": { "

使用Gson將物件Json物件時出現\u003d 、\u0027等情況的問題

Gson將物件轉成Json物件的方法 Log.i(TAG,"rawQuery 0引數 " +new Gson().toJson(param.args[0])); 這種情況,如果pararm.args[0]屬性中的某個值包含有=會變為\u003d、,“’”(單

Oracle--Oracle資料庫中插入日期,日期帶有時分秒(java.util.Date型別)

       通過JDBC向oracle資料庫中插入時間型別時間時,可以直接向資料庫中插入java.sql.Date型別的時間,但是時間只包含年月日,沒有時分秒。如果需要通過JDBC向oracle中插入java.util.Date型別的時間,先將Date轉換成格式化字串,再進

Oracle資料庫中插入日期,日期帶有時分秒(java.util.Date型別)

通過JDBC向oracle資料庫中插入時間型別時間時,可以直接向資料庫中插入java.sql.Date型別的時間,但是時間只包含年月日,沒有時分秒。如果需要通過JDBC向oracle中插入java.util.Date型別的時間,先將Date轉換成格式化字串,再進

Java的知識點22——時間處理相關Date時間(java.util.Date)、DateFormat和SimpleDateFormat

時間處理相關類 用long型別的變數來表示時間,獲得現在時刻的“時刻數值”:long now = System.currentTimeMillis(); Date時間類(java.util.Date)  在標準Java類庫中包含一個Date類。它的物件表示一個特

使用sqlserver資料庫java.util.Date型別異常

 錯誤出現背景:  專案資料庫從oracle轉成sqlserver 錯誤提示:將 nvarchar 值轉換為 JDBC 資料型別 TIMESTAMP 時發生錯誤 在系統中寫測試類,從資料庫中獲取某個物件的時候,一直提示這種錯誤,但是檢查了整個資料庫(sqlserver),每

BeanUtils 實現字串轉換為java.util.Date型別

 oracle資料庫中的Date型別是java.sql.date,所有在java中必須要是bean中的Date型別也為java.sql.Date. 我在用BeanUtils 轉換 用request.getParameterMap() 獲取的map集合時遇到了轉換異常, j

SpringMVC接收java.util.Date型別資料的2種方法

在Controller中如下定義方法 public PassQueryRequest trade(@ModelAttribute PassQueryRequest tradeRequest, @Req

myBatis之java.util.Date型別如何對映到mysql的datetime型別

<update id="updateOrderStatus" parameterType="hashmap"> <![CDATA[ UPDATE HS_TOSS_ORDER SET T_STATUS = #{status,jd

java.util.Date型別轉換json時,使用JsonValueProcessor將date轉換希望的型別

問題描述:     java裡面時間型別轉換成json資料就成這樣了: "createTime":{"date":30,"day":3,"hours":15,"minutes":14,"mont

springMVC返回json資料時date型別資料被long型別

在專案的過程中肯定會遇到ajax請求,但是再用的過程中會發現,在資料庫中好好的時間型別資料:2017-05-04 17:52:24 在轉json的時候,得到的就不是時間格式了 而是145245121這

java http返回的xml格式json格式

package Yishikeji.Hbase.Admin.Hbase; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; public class HdfsClu

淺談Java如何將字串Json物件以及從Json物件中獲得相應的值

前序:在做專案的過程中有次需要將json格式的字元拼接起來作為HTTP請求的一部分,且伺服器響應資訊即收到的返回資訊也是json格式的字串,在做這個專案中請求資訊我是使用字串拼接的,長長的json格式字串讓我拼接了半天,中途出現了幾次錯誤,白白耗費了時間。解析響應的json格

json字串資料json物件取值方式

import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import io.swagger.models.auth.I

json字串json物件,以及json物件json字串

json字串是一種能轉成json物件的字串(我自己理解的), 如  var MRWStr = '{name:WangHongxu,sex:man}', 把 MRW轉成json物件只需要 var MRWObj = JSON.parse(MRWStr); 就能得到 {n

微信小程式-中處理json資料 (從json資料中提取想要的值 將變數json字串json物件

1、新增依賴 <dependency> <groupId>net.sf.json-lib</groupId> <artifactId>jso

將class物件json物件並通過ajax傳遞到前端

後臺程式碼: /// <summary> /// 測試用的類 /// </summary> public class Product { public int productId { get;

java.util.Date日期通過java語句轉換Sql(這裡測試用的是oracle)語句可直接插入(如:insert into)的日期型別

public void add(Emp emp) throws Exception{ QueryRunner runner = new QueryRunner(JdbcUtil.getDataSource()); String sql = "insert

後臺date 前臺String jsp顯示方法,實體date型別 (互!)

後轉前  date轉String 先引入fmt標籤<%@ taglib prefix="fmt" uri="http://java.sun.com/jsp/jstl/fmt"%>,具體的URI請見jstl-*.jar中的fmt.tld。 <fmt:format

Java獲取後臺SQL的date格式,實體中有java.util.Date型別的,輸入前臺的格式轉換

後臺獲取實體類物件,並將實體類物件作為json進行輸出。實體類中有java.util.Date物件 需要在前臺顯示“yyyy-MM-dd”,按照這個格式來進行。 參考:實體類有日期型別,在前端顯示指定格式 需要用到Jacksonjar包。進行物件實體轉換成jso