gpt4 book ai didi

java - 如何使用 Java 和 Jackson 库反序列化 Json 字符串以获得多态结果?

转载 作者:太空宇宙 更新时间:2023-11-04 14:50:03 24 4
gpt4 key购买 nike

我有一个 CONTAINER 类,其中包含一个 ListBaseClass 不是一个抽象类,但是 BaseClass 有 2 个子类型:BaseClassABaseClassB,每个子类型都有额外的字段。

BaseClass 有一个属性枚举类型,我可以从中确定一个对象是 BaseClass、BaseClassA 还是 BaseClassB,并且我想将其用作鉴别器。

我如何告诉 Jackson 鉴别器,以便当它反序列化 json 字符串时,它构建正确的对象。目前,每个对象都实例化为 BaseClass,因此我无法将其转换到我的 java 代码中。与 @DiscriminatorFormula 和 @DiscriminatorValue 对于 hibernate 和实体的工作方式相同

我发现了这个问题:How can I polymorphic deserialization Json String using Java and Jackson Library?这有点接近,但这里用户只需要基本类型。

最佳答案

猜测您可能已经解决了这个问题,但如果没有,请查看 JsonTypeInfo 作为用子类型注释类以进行反序列化的方法。此链接http://programmerbruce.blogspot.com/2011/05/deserialize-json-with-jackson-into.html有一个很好的解释仍然有效。如果您无法注释您的类,您可以使用配置来设置混合项(请参阅 https://github.com/FasterXML/jackson-docs/wiki/JacksonMixInAnnotations ),以允许您向现有类添加注释。

关于java - 如何使用 Java 和 Jackson 库反序列化 Json 字符串以获得多态结果?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23906650/

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