gpt4 book ai didi

java - 没有字段的 jackson 多态反序列化

转载 作者:行者123 更新时间:2023-11-30 10:36:00 26 4
gpt4 key购买 nike

我能够在 jackson 中尝试简单的多态反序列化案例。

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.PROPERTY,
property = "type", visible = true)
@JsonSubTypes({
@Type(value = A.class, name = "a"),
@Type(value = B.class, name = "b")
})
Class Base {
private String type;
...
}

Class A extends Base {
...
}

Class B extends Base {
...
}

但我面临的是我无法控制传入的 Json。 json 看起来像

{ "type": a, "params": { .. A 类型的字段 .. } }

{ "type": b, "params": { .. 类型 B 的字段 .. } }

params 字段可以是 A 或 B 类型。 AB 都继承自 Base 但决定 type 的列在 params 字段。

我如何配置jackson查看类外的字段然后决定实际类型

最佳答案

从中找到答案 Java: Jackson polymorphic JSON deserialization of an object with an interface property?

我们需要将注解放在使用外部属性反序列化的变量上

@JsonTypeInfo(use = JsonTypeInfo.Id.NAME, include = JsonTypeInfo.As.EXTERNAL_PROPERTY,
property = "type")
@JsonSubTypes({
@Type(value = A.class, name = "a"),
@Type(value = B.class, name = "b")
})

关于java - 没有字段的 jackson 多态反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40802320/

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