关于json:Jackson Deserializer的一个自定义领域?

Jackson Deserializer for one custom field?

我相信我们需要一个定制的反序列化程序来对类中的一个字段做一些特定的事情。一旦我这样做,我现在就负责反序列化所有其他字段。有没有一种方法让杰克逊反序列化所有字段,除了我在这里关注的字段?

1
2
3
4
5
6
7
8
9
10
11
12
13
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;
    }
}

桑克斯


在pojo的字段中添加@JsonDeserialize(using = ThingDeseralizer.class)注释。

这将告诉杰克逊如何反序列化该特定字段,REST ALL将作为默认值。