如何在原型中定义parentS <-> childrenS关系
syntax = "proto3";
message Root {
repeated Category category = 2;
}
message Category {
string name = 2;
repeated Category parent = 3;
}
这里的关键是我希望能够召集孩子们
MamyCategoryInstance
|
|--- FooCategoryInstance
...//
PapaCategoryInstance
|
|---- FooCategoryInstance
|---- BarCategoryInstance
谢谢
答案 0 :(得分:1)
您不能。协议缓冲区是基于“树”的序列化器,而不是基于“图形”的序列化器。这样,对象只有一个语义父对象,这是隐式的-不显式的。含义:
message Root {
repeated Category category = 2;
}
message Category {
string name = 2;
}
每个类别的父级都是:树中位于其上方的哪个节点。如果尝试创建显式父关系,则由于递归,序列化将失败。