协议缓冲区 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来区分。

您的 pktsfc_stats 的 ID 均为 1

我建议制作其中一个 2.

注意:它可以将 1 解码为 pkts 但它不知道将 2 解码为什么。