java - 反序列化protobuf java数组

标签 java protocol-buffers

假设我有一个 WCF 服务,它发送用 protobuf-net 序列化的列表。该函数返回 byte[]、application/octet-stream。

现在,在我的 java 应用程序中,我已将 MyClass.proto 编译为 MyClass.java 并从 http 获取之前发送的数据。

要反序列化 1 个对象,我将使用

MyClass MyObject = MyClass.parseFrom(http_input_stream);

但是如果数组来了……我该用什么?

最佳答案

一个List<MyClass>实际上被序列化为 MyClass 的序列对象,每个对象都有一个标准字段 header 1 。我不知道 java API 向后:如果它有一个“读取项目序列”API,那么:使用它。然而,一个可靠的后备是以下完全兼容的“.proto”片段:

message Foo {
    repeated MyClass items = 1;
}

将数据加载为Foo (你可能想重命名它......)并且:工作完成。

关于java - 反序列化protobuf java数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10984402/

相关文章:

java - 在java中创建无限循环的最佳方法是什么?

c# - Google Protocol Buffers 3 C# 中的构建器

tensorflow - 如何使用自定义 protobuf 构建 tensorflow 1.13.1?

python - 测试 protobuf 消息中是否存在重复字段

Java:将二进制转换为十六进制时出现 NumberFormatException

Java多态: finding the right design pattern

java - Spring MVC 3 <表单 :Select> tag multiple selection

C++ 网络序列化

java - Tensorflow 模型导入到 Java

java - 如何使用 Java 获取连接在同一网络(子网)中的 IP 列表