Supose我有一个WCF服务,它发送使用protobuf-net序列化的List。该函数返回byte [],application / octet-stream。
现在,在我的java应用程序中,我已将MyClass.proto编译为MyClass.java,并从http获取之前发送的数据。
要反序列化1个对象,我将使用
MyClass MyObject = MyClass.parseFrom(http_input_stream);
但是,如果阵列出现,我该怎么用?
答案 0 :(得分:2)
List<MyClass>
实际上被序列化为一系列MyClass
个对象,每个对象都有1
的标准字段标题。我不知道java API向后:如果它有一个“读取项目序列”API,那么:使用它。但是,可靠的后备是以下,完全兼容的“.proto”片段:
message Foo {
repeated MyClass items = 1;
}
将数据加载为Foo
(您可能需要重命名...)和:已完成工作。
答案 1 :(得分:1)
好吧,我最后创建了另一个原型消息
message MyClassCollection {
repeated MyClass = 1;
}
然后将其编译为java类并反序列化传入的数组,如
MyClassCollection MyObjects = MyClassCollection.parseFrom(http_input_stream);