假设我有一个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加载(您可能想要重命名...),并:作业完成。

09-27 03:20