Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/324.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
我可以使用Protobuf net来反序列化用Java序列化的数据吗?_Java_C#_.net_Protocol Buffers_Protobuf Net - Fatal编程技术网

我可以使用Protobuf net来反序列化用Java序列化的数据吗?

我可以使用Protobuf net来反序列化用Java序列化的数据吗?,java,c#,.net,protocol-buffers,protobuf-net,Java,C#,.net,Protocol Buffers,Protobuf Net,我们有一个基于Java的WebSocket,它当前返回JSON,然后我们在.Net应用程序中使用它。由于我们接收的数据的大小,我想开始利用协议缓冲区提供的所有优点,特别是在序列化和反序列化过程中,在大小/带宽和节省时间/资源方面 我的问题是: 如果我要求我们的Java团队用Protobuf的Java实现替换他们的JSON序列化程序,那么我是否能够在.net使用者中使用Protobuf net来反序列化它 换句话说,我如何确保我的POCO与他们的POJO匹配 [*]: 请注意,这不是关于不同JSO

我们有一个基于Java的WebSocket,它当前返回JSON,然后我们在.Net应用程序中使用它。由于我们接收的数据的大小,我想开始利用协议缓冲区提供的所有优点,特别是在序列化和反序列化过程中,在大小/带宽和节省时间/资源方面

我的问题是:

如果我要求我们的Java团队用Protobuf的Java实现替换他们的JSON序列化程序,那么我是否能够在.net使用者中使用Protobuf net来反序列化它

换句话说,我如何确保我的POCO与他们的POJO匹配

[*]: 请注意,这不是关于不同JSON Serlializer的性能优势的问题,它是特定于Protobufs的。

是的,绝对是

协议缓冲区被设计成与语言无关的。事实上,它们的主要用途之一是在运行不同堆栈的机器之间进行通信

在网络上,协议缓冲区与XML或JSON没有什么不同。因为他们是独立于语言的


要反序列化,您应该为.Net和Java使用Google机器生成的代码。这将确保协议缓冲区被正确反序列化。

附带说明:对于protobuf net,虽然有一个.proto到csharp代码生成器,但严格来说不需要使用机器生成的代码。