协议缓冲区 Java 解析问题
Protocol buffer Java parsing issue
我有如下所示的 .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;
}
我正在解析它,除了统计信息中的 "Repeated" Accounting 元素没有解析正确的数据外,其他一切都正常。
此外,会计元素的数组列表大小为零,这意味着它没有正确填充,但是如果我打印传感器对象,它会以原始格式提供数据,如下所示,
info {
if_name: "xe"
in_stats {
pkts: 27
2: "\n[=12=]4IPv40[=12=]303570e 03570e"
}
}
知道它有什么问题吗?
每个字段都需要有一个唯一的id来区分。
您的 pkts
和 fc_stats
的 ID 均为 1
我建议制作其中一个 2.
注意:它可以将 1
解码为 pkts
但它不知道将 2
解码为什么。
我有如下所示的 .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;
}
我正在解析它,除了统计信息中的 "Repeated" Accounting 元素没有解析正确的数据外,其他一切都正常。
此外,会计元素的数组列表大小为零,这意味着它没有正确填充,但是如果我打印传感器对象,它会以原始格式提供数据,如下所示,
info {
if_name: "xe"
in_stats {
pkts: 27
2: "\n[=12=]4IPv40[=12=]303570e 03570e"
}
}
知道它有什么问题吗?
每个字段都需要有一个唯一的id来区分。
您的 pkts
和 fc_stats
的 ID 均为 1
我建议制作其中一个 2.
注意:它可以将 1
解码为 pkts
但它不知道将 2
解码为什么。