gpt4 book ai didi

java - 反序列化子类对象时忽略 Jsonserializer

转载 作者:行者123 更新时间:2023-12-02 02:19:38 25 4
gpt4 key购买 nike

我有一个父类,我在其上指定了一个像这样的自定义反序列化器 -

@JsonDeserialize(using = CustomDeserializer.class)
public class ParentClass {
}

我有扩展于类之上的子类,并且我不希望这些类使用 CustomDeserializer 进行反序列化。我知道使用会在序列化期间忽略 CustomDeserializer 类。

@JsonDeserialize(as = Child.class)
public class ChildClass extends ParentClass {
}

问题是 - 是否有任何其他方法可以告诉 ObjectMapper 或其他任何会忽略此 CustomDeserializer 的方法,而无需在每个子类上专门指定 @JsonDeserialize(as = Child.class) ?

最佳答案

从 ParentClass 中删除注释并使用该注释创建一个新的子类。当您想要反序列化到父类时,请使用这个新的子类。由于自定义反序列化注释位于子类上,因此您可以返回 ParentClass 的实例。

public class ParentClass {
// fields in the ParentClass
}

@JsonDeserialize(using = CustomDeserializer.class)
public class ParentWithCustomDeserialize extends Parent {
}

然后你可以简单地...

Parent parent = objectMapper.readValue(jsonString, ParentWithCustomDeserialize.class);

关于java - 反序列化子类对象时忽略 Jsonserializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57284284/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com