json - Jackson Deserializer 用于一个自定义字段?

标签 json jackson deserialization

我相信我们需要一个自定义的反序列化器来对我们类的一个字段做一些特定的事情。看来一旦我这样做了,我现在负责反序列化所有其他领域。有没有办法让 jackson 反序列化除了我在这里关心的领域之外的所有领域?

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)注解。
这将告诉 Jackson 如何反序列化该特定字段,其余部分将作为默认值。

关于json - Jackson Deserializer 用于一个自定义字段?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41001302/

相关文章:

scala - 使用 Scala 应用程序将 List[Object] 转换为案例类

java - 将 JSON HttpMessageConverters 与 Spring Boot 结合使用

java - Json Jackson 不会解开根元素

javascript - 从mysql结果数组中获取值

java - Android 混淆 Proguard 问题

java - Jackson key 解串器未被调用/识别

c# - C#中的序列化和Java中的反序列化

.net - 使用 ServiceStack JsonSerializer 反序列化包含 Dictionary 属性的类型

java - 解析收到的GCM消息

ios - dataWithContentsOfMappedFile 在 iOS 8.0 中弃用