gpt4 book ai didi

java - 如何根据父类中的属性使用 Jackson 进行多态 JSON 反序列化?

转载 作者:行者123 更新时间:2023-11-30 11:28:55 52 4
gpt4 key购买 nike

我们有以下 Json:

{
"type" : "1",
"otherStuff" : "2",
...
"items" : [
{
"commonItemAttribute" : "value",
"specificToType1" : "whatever"
...
}
]
}

我们需要根据类型属性将项目多态反序列化为不同的子类。

是否可以在自定义 Jackson 反序列化器中获取类型值?

我们可以使用提供给反序列化方法的 JsonParser 安全地查看 Json 树吗?

我找到了 this blog关于多态反序列化,但它似乎需要项目本身的类型属性。

谢谢

最佳答案

不支持这种 JSON,因为虽然“外部”类型的表单 ID:

{ "childType": "SomeTypeId", “ child ” : { .... }

受支持(使用 @JsonTypeInfo.As.EXTERNAL_PROPERTY),它们仅适用于简单类型,不适用于 CollectionMap .

因此,如果您不能将 JSON 更改为更加标准(包括元素的类型 ID 是标准方式),您将需要使用自定义序列化器、反序列化器。

关于java - 如何根据父类中的属性使用 Jackson 进行多态 JSON 反序列化?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18713895/

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