【问题标题】:Which is faster/easier to work with in an iPhone app: XML or JSON?在 iPhone 应用程序中使用哪个更快/更容易:XML 还是 JSON?
【发布时间】:2010-01-02 21:36:37
【问题描述】:

我开始创建一个将与公共 API 交互的 iPhone 应用程序。

我的问题是,哪个会更快和/或更容易使用:XML 还是 JSON?

【问题讨论】:

    标签: iphone xml json


    【解决方案1】:

    根据Sam Soffes,TouchJSON 优于 XML 属性列表:

    当我准备我的演讲时,我决定做一些基准测试来展示 plist 比 JSON 更棒的程度。 plist 版本比我的 JSON 框架版本快大约 8 倍。我对这个结果很满意。我的朋友 Jake 说他在他的应用程序中使用 TouchJSON 来解析 JSON,所以我想我也应该继续做基准测试。我期待 JSON 框架能够击败它,因为 JSON 框架的接口比 TouchJSON 的接口简单得多。

    我的发现非常令人惊讶。 TouchJSON 实际上击败了 plist。在我运行的每个测试中,它都稍微快一点。这太棒了,因为 plist 的文件大小要大得多。由于所有额外的标记,它们通常大约是 JSON 文件的两倍。

    但是,这是一个单一的数据点。

    【讨论】:

    • JSON 肯定更快。不幸的是,TouchJSON 是最慢的 JSON 解析器之一。我会强烈推荐JSONKit
    【解决方案2】:

    就内置 API 而言,据我所知,没有对 JSON 的原生支持,因此如果您不想使用外部库,XML 将是唯一的选择。

    也就是说,JSON 往往更容易使用,因为它直接合成到 Cocoa 对象(即 NSDictionary、NSArray、NSString、NSNumber)中,所以如果你愿意,我会说 JSON 更容易使用使用外部库,并且您对 JSON 有良好的服务器端支持。我在json-framework 库上运气不错,所以我的建议是尝试一下。

    JSON 的另一个好处是,由于它的格式,它通常(几乎总是)会在网络上产生更小的文件传输大小。虽然节省了几 kb 可能会被忽略,但对于在蜂窝网络上带宽有限的移动设备来说,这是一个重大胜利。

    【讨论】:

    【解决方案3】:

    用这么少的信息无法判断。这取决于处理该数据形式的两端库的质量和功能。

    但是您已经知道 JSON 会更加紧凑,因为它不必处理结束标签(变量和开放标签对我来说似乎是一种洗礼)。 JSON 线路上的字节更少。

    【讨论】:

      【解决方案4】:

      JSON 非常简洁,可以节省带宽并提高处理效率,所以我会选择它。

      【讨论】:

        【解决方案5】:

        我也会使用 JSON 和 TouchJSON(如前所述)。在我自己的测试中,有效负载更小,解析更快。哦,顺便说一句,不要使用 NSXMLParser,它真的很慢。请改用 libxml2 或 TouchXML。查看这篇关于 iPhone 上 JSON 的直接体验的文章:

        另一种可能的方法是生成 XML 或二进制属性列表,然后将其反序列化为本机对象。您的服务器端应用程序可能会使用 Python 上的 plistlib 或 Ruby 上的 plist 为您生成 plist 格式。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2021-06-09
          • 2011-07-19
          • 2011-05-27
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多