【问题标题】:EMF-JSON: Include properties of EObject SubclassEMF-JSON:包含 EObject 子类的属性
【发布时间】:2018-10-29 21:15:59
【问题描述】:

我正在使用EMF-JSON 序列化 EMF 模型实例。问题是,EObject 的子类被视为这样而不是子类。因此,子类中的属性在序列化过程中会丢失,因为选择了 EObjectSerializer。如何确保在不更改类本身的情况下包含子类的属性(参考包含注释)?在下面,您可以找到生成的接口。在这种情况下,ArithVar 类的 ref 属性没有被序列化。

public interface ArithExpr extends EObject {}

public interface ArithVar extends ArithExpr {
    VarType getRef();
    void setRef(VarType value);
}

public interface VarType extends EObject {}

有什么想法吗?

【问题讨论】:

    标签: jackson emf


    【解决方案1】:

    来自documentation

    默认情况下,引用序列化为包含两个字段的 JSON 对象。第一个字段是被引用对象的类型,第二个字段是被引用对象的 URI。 type 字段命名为 eClass,URI 字段命名为 $ref。

    所以我的猜测是它应该默认工作。您是否尝试过通过 EObjectSerializer 进行调试?我的猜测是它可能使用 EMF 反射 API 来遍历 EObject 的所有功能并序列化它们。

    【讨论】:

    • 那么问题是如何设置引用的对象?事实上,eClass 和 $ref 属性是在 JSON 字符串中设置的。但是,再次从中创建 EObject 会导致空对象。
    猜你喜欢
    • 2021-05-12
    • 2019-06-27
    • 1970-01-01
    • 2014-04-19
    • 2021-10-27
    • 1970-01-01
    • 2011-02-02
    • 2019-01-13
    • 1970-01-01
    相关资源
    最近更新 更多