数据效率 - 以JSON或XML返回?

时间:2011-10-19 09:06:03

标签: xml performance json

我从页面通过AJAX返回了相当大的数据集。这可以是一次达到0-20k的记录,每个记录中有大约10个数据。现在,目前,数据以结构化XML格式返回,javascript处理它(对于记录,我现在正在使用jQuery)。

当XML返回时,jQuery循环遍历所有名为address的节点(使用.find()函数)。然后它分别对数据进行排序,可能需要花费任何时间。然而,它确实看起来代码并不像它可能的那样高效,而且我没有任何处理大数据的经验。我想数据是XML的好处是我们可以很容易地将它集成到其他东西中,例如Web服务等......但效率会好得多,因为我们不想让用户“挂起”。所以我相信其他人之前可能会问过这个,但效率更高的是什么 - XML或JSON?

另外,哪一个更有用,还是两者都相同?

很抱歉,如果这是一个蹩脚的问题,这是我第一次使用JSON!

2 个答案:

答案 0 :(得分:7)

JSON是序列化对象的表示法。这是它的重点和目的。 XML用于定义标记语言,但我不喜欢它,如果人们把这个事实归结为家,好像它不能用于数据。我发现XML非常适合表示大量数据结构。但是,XML是相当通用的,并且在规范,符号和工具大小方面带来了一些开销。

首先,找出你需要的确切内容。您是否需要在更一般意义上传输数据,或者是否足够传递对象?你需要命名空间这样的东西吗?选择能够满足您需求的技术,但不能超过您的需求。但请记住未来的扩张。

其次,考虑工具。几乎所有语言都支持XML。有内存表示(DOM),对象绑定(Java中的JAXB),解析(SAX)的方法... JSON在目标环境中是否有尽可能多的支持?另一方面,JSON在客户端与JavaScript结合使用非常方便。

我相信无论技术选择如何,您都能够做到所需,并且在每个选择中都有优化的空间。但最后还是要考虑一下:也许你不必选择。有时,允许将数据序列化为JSON或XML非常简单。作为一名Java程序员,这是我能想到的唯一例子,但在JAX-WS中,有一些方法可以将来自webservices的数据作为XML,JSON或甚至其他格式从最少的代码调整中获取。

答案 1 :(得分:2)

我的个人意见:

我不太喜欢XML。但这取决于您转移物体的深度。如果您不需要一堆属性和标签来表示您的数据,那么xml肯定不是最佳选择。 (Examples and much more reasoning)。当我可以自由定义自己的Datastructure和层次结构时,JSON是更快捷的方式。它的语法也不像xml那么重,所以你可以为每次传输节省一些比特甚至字节。

对我来说,在现代应用程序中使用XML只有一个原因:方便!当您申请开放标准时(例如,使用带有ATOM Frontend的REST)。您很快就会看到与其他开发人员合作的好处。

最后,您需要决定数据的外观,然后选择最佳代表。