【发布时间】:2017-11-03 07:02:18
【问题描述】:
我希望在两个独立的桌面应用程序之间共享对象数据。通常,我会使用序列化库在一个应用程序中序列化对象,然后在另一个应用程序中反序列化它们(并将数据转换为对象)。
问题:
- 我正在用 C# 序列化对象
- 我想在 Java 中反序列化它们
示例
这是一个我想用 Java 反序列化的 c# 类 (Foo):
class Foo
{
public List<Bar> BarList {get;set;}
public string Name { get; set; }
}
class Bar
{
public string X { get; set; }
public int Y { get; set; }
}
注意:我使用JSON.NET进行序列化
用于示例 Foo 对象的 JSON
{ “酒吧清单”:[ { “X”:“嗨”, “是”:5 }, { “X”:“你好”, “是”:10 } ], “名称”:“富” }
在 Java 中使用这个对象
假设我在 Java 中有一个非常相似的 Foo 类。它有标准私有成员和公共 getter/setter 方法,而不是 Properties。
现在,我可以简单地执行以下操作:
class Foo
{
private ArrayList<Bar> barList;
private string name;
public Foo(string pathToJsonFile)
{
// Method/Code to manually grab the needed JSON and call setters
}
// Setters/Getters
}
此解决方案有效,但我宁愿避免在我的 Java 项目中的每个对象上都使用此构造函数。另外,如果我有深度耦合的对象,这个方法会很大(反序列化这个对象,但它包含也需要反序列化的对象等)。
我的问题:
Java 标准库 中是否有任何反序列化方法可以简化此过程?
算法想法也将不胜感激(我不介意创建一个小框架)。
第三方解决方案是可以的,只要它们是完全开源的,没有 .jar 依赖项。
【问题讨论】:
标签: java c# json serialization