从Web,JSON或XML加载内容的更好方法是什么?

时间:2012-05-15 08:41:42

标签: iphone objective-c xml xcode json

我有一个应用程序,它将从网站加载内容。

每次装载时都会有大约100篇文章。

如果我们看一下,我想知道从网络加载内容哪种方式更好:

  • 速度
  • 兼容性(如果我们使用特殊字符等,编码会有任何问题。)
  • 您的体验

4 个答案:

答案 0 :(得分:4)

如果您的数据很大,JSON会更好

在这里阅读更多

http://www.json.org/xml.html

答案 1 :(得分:2)

强烈推荐JSON以获得更好的性能和更少的带宽消耗。

答案 2 :(得分:2)

JSON一路走来。 Saad的链接是比较两者(+1给Saad)的绝佳资源,但这是我从经验中得到的并基于你的帖子:

  • 速度

    JSON可能在很多方面更快。首先,语法更简单,因此解析和构造会更快。其次,它不那么冗长。这意味着通过电线传输速度会更快。

  • 兼容性

    理论上,这里没有JSON或XML的问题。在字符编码方面,我认为JSON获胜是因为必须使用Unicode。 XML允许您使用您喜欢的任何字符编码,但我看到解析器会阻塞,因为顶部的行指定了一个编码,而实际数据则是不同的。

  • 经验

    我发现XML手工制作要困难得多。您可以在任何文本编辑器中编写JSON,但XML确实需要一个特殊的XML编辑器才能使其正确。

    XML在程序中更难操作。解析器必须处理更复杂的问题:名称空间,属性,实体,CDATA等。因此,如果您使用基于流的解析器,则需要跟踪属性,元素内容,命名空间映射等。基于DOM的解析器倾向于生成复杂的自定义图形对象(因为它们必须为了模拟复杂性)。我不得不承认,我从未使用过基于流的JSON解析器,但生成对象图的解析器可以使用自然的Objective-C集合。

    在iPhone上,Cocoa中没有内置的XML DOM解析器(你可以使用基于C的解析器 - libxml2)但是从iOS 5开始就有一个简单易用的JSON解析器。

总之,如果我控制了链接​​的两端,我每次都会使用JSON。在OS X上,如果我需要结构化的人类可读文档格式,我将使用JSON。

答案 3 :(得分:1)

你说你正在加载“文章”。如果你的意思是包含富文本的文档(斜体和粗体等),那么不清楚JSON是一个选项--JSON并不真正做混合内容。

如果它是纯粹的简单结构化数据,并且如果您不必处理复杂性,例如需要通信两端的软件单独进化而不是保持锁定同步,那么JSON更简单,更便宜:您不需要XML的额外功能或复杂性。