【问题标题】:Can I use Protobuf-net to deserilaze data which has been serialized in Java?我可以使用 Protobuf-net 对已用 Java 序列化的数据进行反序列化吗?
【发布时间】:2014-09-16 00:49:49
【问题描述】:

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

我的问题是:

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

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

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

【问题讨论】:

    标签: java c# .net protocol-buffers protobuf-net


    【解决方案1】:

    是的,绝对的。

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

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

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

    【讨论】:

    • 附带说明:使用 protobuf-net 特别是,使用机器生成的代码并不是绝对必要的 - 尽管有 .proto-to-csharp 代码生成器。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-04-26
    • 2013-02-03
    • 1970-01-01
    • 2011-12-30
    • 1970-01-01
    • 2016-03-29
    • 1970-01-01
    相关资源
    最近更新 更多