我应该选择哪种格式来请求C#-JSON或XML格式的API

我应该选择哪种格式来请求C#-JSON或XML格式的API,c#,xml,json,api,rest,C#,Xml,Json,Api,Rest,我正在从C#中的REST API请求数据。API以JSON和XML格式为我提供相同的数据 我该选哪一个?这是我在JavaScript中选择的一个但是在C#中有什么呢?在C#中有什么性能优势可以帮助我选择一个而不是另一个,或者有什么好的实践理由吗 提前谢谢 就我个人而言,我会尝试两者,衡量性能,比较并选择一个更快的。从应用程序逻辑的角度来看,这并不重要,因为它将操作对象(不是XML,也不是JSON)。XML/JSON到对象的转换应该被抽象到一个存储库中,如果您觉得最初选择的实现很慢或者不适合您,您

我正在从C#中的REST API请求数据。API以JSON和XML格式为我提供相同的数据

我该选哪一个?这是我在JavaScript中选择的一个但是在C#中有什么呢?在C#中有什么性能优势可以帮助我选择一个而不是另一个,或者有什么好的实践理由吗


提前谢谢

就我个人而言,我会尝试两者,衡量性能,比较并选择一个更快的。从应用程序逻辑的角度来看,这并不重要,因为它将操作对象(不是XML,也不是JSON)。XML/JSON到对象的转换应该被抽象到一个存储库中,如果您觉得最初选择的实现很慢或者不适合您,您可以在一眨眼的时间内用另一个实现替代它。

C#可以从JSON或XML反序列化对象

一般来说,XML将比JSON更加冗长

如果您得到的是一个小数据集,那么它不会有太大的区别,但是如果您有一个更大的数据集,那么不太详细的JSON可能会更快地通过网络传输


我会对每一个都抽取样本进行比较。

我个人认为C#中的XML序列化框架比JSON支持(实际上有两个不同的.NET框架)更成熟,功能更丰富。但是JSON要简洁得多,因此它取决于负载的特性—是否会导致流量过大等等。

JSON和XML在任何语言中都有大量的库,因此解析/生成的方便性在这里都不是很重要

另外,尽管JSON看起来更小(特别是如果您不使用XML属性,而是使用纯元素方法),但gzip时两者都是


如果你真的喜欢速度,我建议你看看谷歌的。如果不是,这实际上是一个品味问题,除非您计划对该API进行AJAX调用,在这种情况下,我会毫无疑问地选择JSON。

在某个时候,可能在调试期间,您可能希望检查或显示原始API响应。在这种情况下,如果您选择了更容易阅读的格式,您会感觉更好。

您应该衡量这两种格式,以确定您的情况的性能特征


在我自己的使用中,我从JSON开始,因为它具有明显的“跨平台”优势,但在Silverlight/C#的大型数据集上速度大幅放缓后,我不得不使用XML(据报道,在我的一个模块中,这是一个bug,所有的东西都会冻结几秒钟——这种放缓可以追溯到它所使用的大型数据集的JSON反序列化)。切换到XML导致了更大的下载量(已经计划好的gzip压缩在此时被添加,以应对这种情况)但是,即使添加了gzip解压,性能也会有一个数量级的提高。

当然,如果我在这里运气不好,这是我的下一步行动;)我现在要做一些性能测试。如果从设计角度看这真的不重要,我会选择最快的。谢谢@你做过性能测试吗?介意发布结果和您用来测试的解析器吗?@hofnarwillie我最终使用了JSON,因为我个人更喜欢它,而且格式在我的场景中并没有那么重要,但如果您想提高速度,可能值得尝试不同的.NET序列化器:我喜欢协议缓冲区链接。我会彻底调查的!即使这不是这个项目的一个选项。谢谢你的情况很好!就像很多其他事情一样,我想这要视情况而定。只是希望有一些基准;)服务器端的XML处理比浏览器中有更多的选项(性能、成熟度等)。。。