【问题标题】:Better way to load content from web, JSON or XML?从 Web、JSON 或 XML 加载内容的更好方法?
【发布时间】:2026-02-03 13:30:01
【问题描述】:

我有一个可以从网站加载内容的应用。

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

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

  • 速度
  • 兼容性(如果我们使用特殊字符等会不会出现编码问题)
  • 您的体验

【问题讨论】:

    标签: iphone objective-c xml xcode json


    【解决方案1】:

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

    在这里阅读更多

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

    【讨论】:

      【解决方案2】:

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

      【讨论】:

      • 感谢您的回答,很抱歉,但我必须接受“The Saad”的回答,因为他首先回答了。
      【解决方案3】:

      JSON 一路走来。 Saad 的链接是比较两者的绝佳资源(与 Saad 相比 +1),但以下是我根据经验和您的帖子得出的结论:

      • 速度

        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。

      【讨论】:

        【解决方案4】:

        您说您正在加载“文章”。如果您指的是包含富文本(斜体和粗体之类的东西)的文档,那么 JSON 是否是一种选择就不清楚了 - JSON 并没有真正处理混合内容。

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

        【讨论】:

        • 文章将有:数字、描述(斜体和粗体)等。