c# - C#中的序列化和Java中的反序列化

标签 c# java serialization deserialization

是否可以在 C# 中序列化类/对象并在 java 中反序列化它们。我想序列化类而不是任何 XML/JSON 数据。请澄清。

谢谢

最佳答案

我在这里看到 3 个选项。我建议选项 1,Protobufs。

研究 Google 的 ProtoBufs

或者一些等价物。这是 java version.这是一个 C# port.

Protobufs 意味着这种语言互操作。它是二进制的、小的、快速的和与语言无关的。

同时它还具有向后兼容性,因此如果您将来更改序列化对象,您仍然可以读取它们。此功能对您来说也是透明的,只要您编写代码时了解在反序列化旧对象时可能会丢失较新的变量。这是一个巨大的优势!

在另一种语言中实现一种语言的默认序列化

您可以尝试在 C# 中实现 java 序列化逻辑,或在 Java 中实现 C# 序列化例程。我不建议这样做,因为它会更困难、更冗长,而且在您编写新代码时几乎肯定会更慢,并且会给您带来相同的结果。

手动编写序列化例程

这肯定会很快,但是很乏味,更容易出错,更难维护,更不灵活......

Here's some benchmarks对于像 ProtoBufs 这样的库。这应该有助于您为您的用例选择最佳的。

关于c# - C#中的序列化和Java中的反序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17978066/

相关文章:

c# - 如何在 C# 中编写超快的文件流代码?

java - 具有相同serialversionuid的不同类

java - 如何使用 GSON 只返回一个特定的空字段?

c# - 在 C# 中获取所有 Controller 和操作名称

c# - 为什么 `GetFormat` 被调用两次?

java - 使用 Hibernate 的外键将对象与另一个表中的数据映射

java - Lucene 3.0.3 不删除文件

java - Java 序列化是否适用于循环引用?

c# - Rx groupby 直到条件改变

java - 创建自行循环的动画文本