将序列化的 Java 对象转换为 C# 对象

本文关键字:对象 转换 Java 序列化 | 更新日期: 2023-09-27 18:37:07

我有一个非常旧的Java应用程序,我正在用.net重写,我无法以任何方式更改Java代码或旧文件。

他们创建并存储了 10,000+ 与本文中描述的格式匹配的文件,即一堆序列化的 Java 对象。

问题

  • 如何在 c# 中解析这些 Java 对象?
  • 这可能吗?

最后,如果我能读入和序列化数据,我就可以以更通用的格式存储它。 当我尝试反序列化文件时,我遇到了异常,通常告诉我二进制格式无效。

将序列化的 Java 对象转换为 C# 对象

这里也提出了类似的问题。

您有几个选择。一种是编写一个能够读取 Java 序列化格式(您链接的格式)对象的 C# 类,但这可能非常耗时。使用 C# 的本机反序列化算法将不起作用,因为格式不同(如你遇到的那样)。

更简单的替代方法是使用 Java 程序从文件中读取对象,并将它们保存为更通用的格式,例如 JSON。(如此处对另一个问题的回答中所建议的)