【发布时间】:2016-10-24 10:22:45
【问题描述】:
在实体的自定义反序列化器中,我想以某种方式递归调用(某些)字段的反序列化,@JsonFormat 注释受到尊重。更具体地说,这是 Deserializer 的样子:
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;
pattern 考虑在内,因此由于未知(德语)日期格式而生成异常。
有什么方法可以反序列化对象的字段以使其尊重带注释的格式?
【问题讨论】:
标签: java jackson deserialization date-formatting