仅对根对象和某些子代进行泛型类型的序列化和反序列化期间的Jaskson JSON定制类型属性

考虑以下JSON对象:

{
  "selector": {
    "id": "77112778040"
  },"data": {
    "foo": "bar","_dmType": "http://www.example.com/foo/bar#SomeObject"
  },"_dmType": "http://www.example.com/something#OtherObject"
}

Java对象的示例(跳过的样板代码):

package com.example.something;

public class OtherObject {

    private Selector selector;
    private Object data;

}

package com.example.something;

public class Selector {

    private String id;

}

package com.example.foo.bar;

public class SomeObject {

    private String foo;

}

当然,我知道如何将_dmType值映射到适当的Java类(这只是从xds文件生成的类中的名称空间和对象类型名称)。

我尝试使用自定义StdTypeResolverBuilderTypeIdResolverBase。它向所有对象添加了自定义属性,而冗余是多余的-我只想为根类型添加cutom类型属性,而wchich是其他类型的扩展。

反序列化又如何呢?仅当树中的所有对象都具有_dmType时,它才有效。我的课程没有@JsonTypeInfo批注,我正在使用JacksonAnnotationIntrospector

xqljfazdyq 回答:仅对根对象和某些子代进行泛型类型的序列化和反序列化期间的Jaskson JSON定制类型属性

暂时没有好的解决方案,如果你有好的解决方案,请发邮件至:iooj@foxmail.com
本文链接:https://www.f2er.com/3106655.html

大家都在问