我有.Proto文件,如下所示
message Port {
repeated Info info = 1;
}
message Info {
required string if_name = 1 ;
optional Stats in_stats = 2;
}
message Stats {
required uint64 pkts = 1 ;
repeated Accounting fc_stats = 2;
}
message Accounting {
optional string family = 1 ;
}
extend Sensors {
optional Port InterfaceExt = 7;
}
我正在解析它,除了"重复"统计信息内的会计元素不会解析正确的数据。
此外,数组列表大小为会计元素零,这意味着它没有正确填充,但是如果我打印传感器对象,它将以原始格式提供数据,如下所示,
info {
if_name: "xe"
in_stats {
pkts: 27
2: "\n\004IPv4\020\003\030\343\355\277\240e \200\343\355\277\240e"
}
}
知道它有什么问题吗?
答案 0 :(得分:1)
每个字段都需要有唯一的ID来区分它。
您的pkts
和fc_stats
都有1
我建议其中一个2。
注意:它可以将1
解码为pkts
,但它不知道将2
解码为什么。