假设你有一个proto定义如下:
-n
让我们说猫看起来像这样:
message Zoo {
repeated Cat cats = 1;
}
如果我想减少Zoo中的数据量,使得样本数据只包含message Cat {
google.protobuf.StringValue name = 1
Decimal age = 2;
}
,只有名称字段,我该怎么做?
实施例: Zoo对象的示例如下所示:
Cat
我正在尝试使用一个字段掩码:
{
Cat: [{
name = "sam";
},
{
name = "hester";
}]
}
如何制作每个FieldMask zoo_mask = FieldMask.newBuilder()
.addPaths("cats")
.build();
Zoo getMaskedZoo(FieldMask mask, Zoo zoo) {
Zoo.Builder zooDest = Zoo.newBuilder();
FieldMaskUtil.merge(zoo_mask, zoo, zooDest);
return zooDest.build();
}
只显示名称?
答案 0 :(得分:0)
我刚检查了Java implementation并且它在Java中不受支持,因为猫是重复的字段。它在c-core中也不受支持。
您最好的选择是使用反射来实现目标。
答案 1 :(得分:0)
除了字段掩码的最后位置外,不允许重复字段。