EMF-JSON:包含EObject子类的属性

时间:2018-10-29 11:44:31

标签: jackson emf

我正在使用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 {}

有什么想法吗?

1 个答案:

答案 0 :(得分:2)

来自documentation

  

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

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