如果我的C#客户端应用程序需要从Java服务器应用程序反序列化复杂的JSON,那么我的最佳选择是什么?
以下两个条件需要考虑: 1)速度是最重要的 2)Json格式可以包含有关Java数据类型,C#客户端应用程序的信息。需要识别它并将其转换为C#corespondent类型。例如,
...,"Variable1" : [ "java.math.BigDecimal", 0E-8 ],
"Variable2" : [ "com.xmlasia.x5.refdata.instrument.model.MarginGroup"],...
IMO因为第2点,唯一的办法是建立自己的反序列化器,我是对的吗?
关于第1点,如果我使用Json.net反序列化Json,然后转换为arraylist,它对速度有显着影响?还有其他更好的方法吗?
arraylist方法的缺点是extractJson方法变得非常混乱,我认为arraylist很慢。
答案 0 :(得分:1)
我认为最简单的方法是构建一个将这个JSON转换为更具互操作性的桥梁。
答案 1 :(得分:1)
“速度是最重要的”不太可能,否则数据需要以二进制格式发送。然而,所有主要的json解析器也很快,所以这不太可能是一个问题。
如果解析器只是忽略了java数据类型并根据名称将字段映射到.net对象中的字段,那么您可能没问题。否则你需要一个json解析器,它会返回字段的字典,以便你自己处理它们。 应该没有必要编写自己的字符串处理代码来解码json,这是一个已解决的问题。
.net有很多json库,因为我查看它们已经很久了,我不推荐你最好用的。