假设我有一个WCF服务,该服务发送用protobuf-net序列化的List。该函数返回byte [],应用程序/八位字节流。
现在,在我的Java应用程序中,我已将MyClass.proto编译为MyClass.java,并从http获取了之前发送的数据。
要反序列化1个对象,我将使用
MyClass MyObject = MyClass.parseFrom(http_input_stream);
但是如果数组来了我该怎么用...?
最佳答案
实际上,一个List<MyClass>
被序列化为一个MyClass
对象的序列,每个对象都有一个标准的字段头cc。我不知道Java API是反向的:如果它具有“读取项目序列” API,则:使用它。但是,以下完全兼容的“ .proto”片段是一个值得信赖的后备:
message Foo {
repeated MyClass items = 1;
}
将数据作为
1
加载(您可能想要重命名...),并:作业完成。