【发布时间】:2017-08-09 13:30:32
【问题描述】:
我正在用 java 开发一个项目,它正在替换旧的 C# 程序。在旧的 C# 程序中,用户可以将他们正在处理的数据保存到 GZip 文件中,通过序列化包含所有数据的包装器对象并使用 GZipStream 编写它。
我想为用户提供加载使用旧系统保存的数据的选项。使用 Java 的 GZipInputStream 打开 GZip 文件很简单,但是我该如何反序列化对象呢?
我做了一点研究,发现了这个问题:Can a serialized simple java object be deserialized by C#? 那里的答案说没有库可以做到这一点,但是有关于Java如何序列化对象的文档,并且可以编写自己的代码来反序列化它们。
是否有从 C# 到 Java 的已知方法?还是我应该从头开始编写自己的转换器?
【问题讨论】:
-
您是否考虑过(作为一种解决方法)创建一个可以用 C# 编写的转换器,反序列化对象,然后将其序列化为与语言无关的东西,例如 protobuff、json、xml...?
-
您需要兼容版本的 C# 对象才能在 Java 程序中反序列化。这并不容易获得并且需要专家知识来调试。我建议重新考虑您的方法。
-
@Stonehead 这真是个好主意,我可能最终会这样做。
标签: java c# serialization deserialization