使用傑克遜2.5+,什麼JsonSerializer
方法必須由一個包裹JsonSerializer
覆蓋從返回:Jackson 2.5+:必須通過包裝從BeanSerializerModifier.modifySerializer(...)返回的JsonSerializer重寫什麼JsonSerializer方法?
BeanSerializerModifier.modifySerializer(SerializationConfig sc, BeanDescription bd, JsonSerializer<?> js)
我肯定重寫serialize(...)
,因爲我是從基於的值被序列化過濾掉一些對象他們的屬性在那個覆蓋。否則,如果對象沒有被其屬性值過濾掉,我通常通過調用js.serialize(...)
來序列化,其中js
是作爲參數傳遞給modifySerializer
的JsonSerializer
。
但我不知道我是否還應該覆蓋以下任何其他JsonSerializer
方法:
getDelegatee()
replaceDelegatee(...)
isUnwrappingSerializer()
unwrappingSerializer(...)
handledType()
usesObjectId()
isEmpty(T)
isEmpty(SerializerProvider, T)
acceptJsonFormatVisitor(...)
serializeWithType(...)
例如,如果getDelegatee()
回報js
?
爲什麼我要讓replaceDelegatee(...)
代替js
作爲代表?如果我允許這樣做,那麼我必須將js
保存到一個字段中,以便我可以替換它。