1
在實體的自定義Deserializer中,我想以某種方式遞歸調用(某些)字段的反序列化,從而尊重@JsonFormat註釋。更具體地是這樣的解串器的樣子:Jackson Deserializer如何遞歸反序列化將@JsonFormat註釋考慮在內的字段?
public class DealPatchDeserializer extends JsonDeserializer<DealPatch> {
public DealPatch deserialize(JsonParser p, DeserializationContext ctxt)
throws IOException, JsonProcessingException {
JsonNode root = p.readValueAsTree();
JsonNode redeemableFromNode = root.path("redeemableFrom");
JsonParser redeemableFromParser = redeemableFromNode.traverse(p.getCodec());
Date date = redeemableFromParser.readValueAs(Date.class);
}
在那個例子中的JsonParser.readValueAs()不採取附加說明
@JsonFormat(shape = JsonFormat.Shape.STRING, pattern = "dd.MM.yyyy")
private Date redeemableTo;
圖案考慮在內,從而生成由於異常未知(德文)日期格式。
是否有任何方法反序列化對象的字段,以便它尊重註釋格式?
沒有。 @JsonFormat未被使用,因此存在HttpMessageNotReadableException,因爲該值無法反序列化爲Date。我的觀點是:我有一個有格式註釋的字段,我怎樣才能調用這個字段進行反序列化,以便使用指定的格式? – Gregor