首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Yasson没有正确转换子类

Yasson没有正确转换子类
EN

Stack Overflow用户
提问于 2020-05-11 18:27:36
回答 1查看 105关注 0票数 0

我正在为payara-micro构建一个应用程序。我需要将Json字符串转换为扩展超类的对象。我遇到的问题是父字段和子字段都没有填充,并且创建的实例不是子类类型:

例如,Person有一个Vehicle列表(子类型:BikeBus,...)

代码语言:javascript
复制
  {
      name: "John",
      vehicles: [
          {
              type: "bike",
              doors: 5
          }
      ]
  }

这个json的结果对象将是一个填充了namePerson对象,以及一个包含一个元素的Vehicle列表,但该元素的类型将为Vehicle,并且Vehicle中的所有字段都没有值。

代码语言:javascript
复制
Jsonb jsonb = JsonbBuilder.create();
Person person = jsonb.fromJson(jsonString, Person.class);
EN

回答 1

Stack Overflow用户

发布于 2020-05-23 19:16:27

不幸的是,您正在寻找的功能不是Yasson (也不是JSON-B)的一部分。规范没有明确提到这一点,但User Guide on Serializers/Deserializers暗示了这一点(强调我的):

让我们来看一下样本。想象一下,我们想要序列化和反序列化宠物载体列表。由抽象类Animal定义的携带宠物。它可以是它的任何子类。我们希望正确地序列化和反序列化它。为了做到这一点,我们需要在文档中保留一个类型信息,并在反序列化时使用它。可以使用自定义序列化程序/反序列化程序对来完成此操作。

该示例包含一个自定义的序列化程序/反序列化程序,它应该会得到所需的结果,但您必须自己实现这个自定义的序列化程序/反序列化程序。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/61727513

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档