我的C#客户端应用程序需要反序列化Java应用程序发送的复杂JSON

时间:2010-09-14 11:22:17

标签: c# java json

如果我的C#客户端应用程序需要从Java服务器应用程序反序列化复杂的JSON,那么我的最佳选择是什么?

以下两个条件需要考虑: 1)速度是最重要的 2)Json格式可以包含有关Java数据类型,C#客户端应用程序的信息。需要识别它并将其转换为C#c​​orespondent类型。例如,

...,"Variable1" : [ "java.math.BigDecimal", 0E-8 ],
  "Variable2" : [ "com.xmlasia.x5.refdata.instrument.model.MarginGroup"],...

IMO因为第2点,唯一的办法是建立自己的反序列化器,我是对的吗?

关于第1点,如果我使用Json.net反序列化Json,然后转换为arraylist,它对速度有显着影响?还有其他更好的方法吗?

arraylist方法的缺点是extractJson方法变得非常混乱,我认为arraylist很慢。

2 个答案:

答案 0 :(得分:1)

我认为最简单的方法是构建一个将这个JSON转换为更具互操作性的桥梁。

答案 1 :(得分:1)

“速度是最重要的”不太可能,否则数据需要以二进制格式发送。然而,所有主要的json解析器也很快,所以这不太可能是一个问题。

如果解析器只是忽略了java数据类型并根据名称将字段映射到.net对象中的字段,那么您可能没问题。否则你需要一个json解析器,它会返回字段的字典,以便你自己处理它们。 应该没有必要编写自己的字符串处理代码来解码json,这是一个已解决的问题。

.net有很多json库,因为我查看它们已经很久了,我不推荐你最好用的。