我认为我们需要一个自定义反序列化程序来对我们班级中的一个字段执行特定的操作。一旦我这样做,我现在负责反序列化所有其他领域。有没有办法让杰克逊反序列化所有字段除了我关注的那个?
public class ThingDeseralizer extends StdDeserializer<Thing> {
@Override
public Thing deserialize(JsonParser p, DeserializationContext ctxt) throws IOException, JsonProcessingException {
ObjectCodec oc = p.getCodec();
JsonNode node = oc.readTree(p);
String special = node.get("special").asText();
Thing thing = new Thing()
thing.doSomethignWithSpecial(special)
return thing;
}
}
感谢名单
答案 0 :(得分:7)
在POJO中的字段上添加@JsonDeserialize(using = ThingDeseralizer.class)
注释。
这将告诉杰克逊如何对该特定字段进行反序列化,其余部分将默认为。