1. 程式人生 > >FastJson自定義Date型別反序列化

FastJson自定義Date型別反序列化

fastjson版本:1.2.38,(Sep, 2017)

需求

有時候我們需要自定義反序列化,例如從伺服器接收的字串為秒,而fastjson需要的是毫秒。因此需要自定義反序列化。

問題提出

但是在最新的fastjson庫裡(1.2.38, Sep, 2017)沒有DateFormatDeserializer類或者DateDeserializer類。通過檢視原始碼,發現目前使用:com.alibaba.fastjson.serializer.DateCodec

問題解決

自定義類SecondDeserializer繼承DateCodec,然後重寫cast方法,如下:

public class SecondDeserializer extends DateCodec {

    public final static SecondDeserializer instance = new SecondDeserializer();

    @Override
    public <T> T cast(DefaultJSONParser parser, Type clazz, Object fieldName, Object val){
        long value = Long.valueOf(String.valueOf(val)) * 1000
; return super.cast(parser, clazz, fieldName, value); } }

這樣,當json傳來是的秒,能夠轉化為java中的Date類。

相關推薦

FastJson定義Date型別序列

fastjson版本:1.2.38,(Sep, 2017) 需求 有時候我們需要自定義反序列化,例如從伺服器接收的字串為秒,而fastjson需要的是毫秒。因此需要自定義反序列化。 問題提出 但是在最新的fastjson庫裡(1.2.

Hadoop系列-MapReduce定義資料型別序列序列機制)(十二)

Github程式碼下載地址: 大家都知道,Hadoop中為Key的資料型別必須實現WritableComparable介面,而Value的資料型別只需要實現Writable介面即可;能做Key的一定可以做Value,能做Value的未必能做Key。但是具體應該怎麼應

定義JsonConverter,序列不符合規範的陣列屬性

如果json 字串不符合規範,可以通過自定義jsonconvert 解決 public class SingleValueArrayConverter<T> : JsonConverter { public override void Writ

MapReduce常見演算法 與定義排序及Hadoop序列

MapReduce常見演算法 •單詞計數 •資料去重 •排序 •Top K •選擇  以求最值為例,從100萬資料中選出一行最小值 •投影  以求處理手機上網日誌為例,從其11個欄位選出了五個欄位(列)來顯示我們的手機上網流量 •分組  相當於分割槽,以求處理手機上網日誌為例,喊手機號和非手

Fastjson 1.2.22-24 序列漏洞分析

dcl trac xslt dom 反序 ast 其中 axis remote 0x00 簡單介紹 介紹:FastJson是一款由阿裏開發的JSON庫 影響版本:1.2.22-24 官方通告:https://github.com/alibaba/fastjson/wiki

定義bean物件實現序列介面(Writable)以及實現案例

自定義bean物件序列化傳輸必須注意 (1) 實現Writable介面 (2)反序列化時,需要反射呼叫空建構函式,所以必須有空構造 public FlowBean() { super(); } (3)重寫序列化方法 @Override pu

Jackson 定義序列 & 序列 物件型別

public class JacksonUtils { private static final ObjectMapper mapper = new ObjectMapper(); public static final String CLASS_KEY

記錄一次原始碼擴充套件案列——FastJson定義序列ValueMutator

背景:曾經遇到一個很麻煩的事情,就是一個json串中有很多佔位符,需要替換成特定文案。如果將json轉換成物件後,在一個一個屬性去轉換的話就出出現很多冗餘程式碼,不美觀也不是很實用。 而且也不能提前在json串中替換,因為替換的文案會因為某些變數發生改變。就比如國際化,在中文的時候應該是"你好",而在英文的

jackson中定義處理序列序列

public turn ali fast col ast mar 繼承 con http://jackyrong.iteye.com/blog/2005323 ********************************************** 對於一直用gson的

FastJson定義複雜物件序列

總結:  SerializeFilter是通過程式設計擴充套件的方式定製序列化。fastjson支援6種SerializeFilter,用於不同場景的定製序列化。  PropertyPreFilter 根據PropertyName判斷是否序列化  Pr

c# 通過json.net中的JsonConverter進行定義序列序列

iter 希望 生成 ade json.net .json implement else col   相信大家在工作中會經常遇見對json進行序列化與反序列化吧,但通常的序列化與反序列化中的json結構與c#中的類模型結構是相對應的,我們是否可以在序列化一個對象時候,讓我們

golang基礎 json序列序列定義error的一些方法

最近在工作中,用到關於結構體巢狀和序列化的問題,所以在這裡做出整理 1.結構體轉json package main import ( "fmt" "encoding/json" ) type User struct { UserName string `json

TreeSet定義Comparator後序列序列問題

碰到一個比較鬱悶的問題,在TreeSet中定義了一個Comparator之後出現了序列化物件失敗的問題。有興趣可以嘗試一下。 問題: If java.util.TreeMap customer created by constructor with java.util.C

Jackson 序列序列定義日期格式

在Java裡的Json序列化自定義日期格式。尤其是多語言環境裡日期格式是不一樣,導致無法相容。肥話少說,直接上程式碼。原始碼如下:public final class JacksonUtils {    private JacksonUtils() {    }    /**

Json序列之ObjectMapper(定義實現序列方法)

     對於伺服器端開發人員而言,呼叫第三方介面獲取資料,將其“代理”轉化並返給客戶端幾乎是家常便飯的事兒。    一般情況下,第三方介面返回的資料型別是json格式,而伺服器開發人員則需將json格式的資料轉換成物件,繼而對其進行處理並封裝,以返回給客戶端。  

XML序列序列+定義XML註解框架XmlUtils

背景 前面一篇總結了Serializable的序列化與反序列化,現在接著總結XML。主要內容:XML基本的序列化與反序列化方法、一些注意事項、以及自定義了一個XML註解框架(簡潔程式碼,解放雙手)。 XML的序列化與反序列化 先與Serializabl

FastJSON定義序列-修改屬性值

簡介 SerializeFilter是通過程式設計擴充套件的方式定製序列化。fastjson支援6種SerializeFilter,用於不同場景的定製序列化。 PropertyPreFilter 根據PropertyName判斷是否序列化 Property

springboot配置fastJson定義序列(解決js精度丟失問題)

最近的專案中碰到了js精度丟失的問題,專案中一個Long型的數值傳遞到前臺後出現了精度丟失,資料不對了,檢查發現是js的問題。解決方案:json序列化時將Long轉成string再傳遞到前臺,重寫configureMessageConverters

springboot fastjson對於列舉型別序列序列的支援

專案中使用fastjson序列化後, 發現無法對列舉型別反序列化. 看了下原始碼, 序列化實現ObjectSerializer,

jackson定義全域性序列序列

需要自定義Jackson序列化和反序列化有兩種方式,一種是全域性定義,一種是非全域性定義。先來看看全域性定義。全域性定義的步驟如下