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



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

有什么想法吗?

来自文档:

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

所以我猜它默认情况下应该工作。您是否尝试过通过EObjectSerializer进行调试?我的猜测是,它可能使用EMF反射API来迭代EObject的所有特性并对它们进行序列化。

最新更新