我在C#中从REST API请求数据。该API以JSON和XML格式提供相同的数据。
我应该选择哪一个呢?在JavaScript中,很明显我会选择哪一个。但是在C#中呢?有没有性能优势可以帮助我在C#中选择其中之一,或者有没有好的实践原因呢?
提前致谢!
个人建议尝试两种方法,测量性能,比较后选择更快的一种。从应用逻辑角度来看,这并不重要,因为它将操作对象(而不是XML或JSON)。将XML / JSON转换为对象应该抽象到存储库中,如果您觉得最初选择的实现速度慢或无法正常工作,您可以在眨眼之间替换为另一个实现。
C#可以从JSON或XML反序列化对象。
一般来说,XML比JSON更冗长。
如果你获取的数据集很小,那么它们之间的差异不大,但如果你有一个较大的数据集,那么不那么冗长的JSON可能会在网络传输中更快地传输。
我会取样本并进行比较。
在某些时候,可能是在调试期间,您可能想要检查或显示原始的API响应。在这种情况下,如果您选择了更容易阅读的格式,那么您会更好地完成任务。
你应该同时测量两者,以确定你的情况的性能特征。
在我的使用中,我开始使用JSON,因为它具有明显的“跨平台”优势,但在Silverlight/C#中处理较大数据集时被迫改用XML,因为出现了严重的减速(这在我的模块中报告为错误,其中一切都会冻结数秒钟 - 减速被追踪到其使用的大型数据集的JSON反序列化)。转换为XML导致下载量增加(已计划添加gzip压缩以抵消此问题),但性能增加了一个数量级,即使添加了gzip解压缩。