【问题标题】:ExtJS - Do you find it easier to work with JSON or XML responses?ExtJS - 您发现使用 JSON 或 XML 响应更容易吗?
【发布时间】:2011-02-25 04:12:07
【问题描述】:

只是一个简单的问题(它被标记为社区 wiki)

根据经验,您是否发现在使用 ExtJS 时使用 XML 或 JSON 评估 ajax 响应更容易? ExtJs 哪种格式更适合处理?

我在他们之间左右为难。

谢谢!

【问题讨论】:

  • SO 和民意调查混合得不太好,但我会投票给 JSON,而且还没有接近。

标签: javascript extjs


【解决方案1】:

根据ExtJS team,JSON 使用起来更简单快捷。

在我以前的工作中,我们都尝试了这两种方法,并且使用 JSON 肯定有更好的性能。

【讨论】:

  • “又名 JSON(JavaScript 对象表示法)表明它在设计时考虑到了用于系统间通信的 javascript。”总结的非常好。谢谢你的链接。但是,您不认为对于某些数据集 xml 更好吗?即我更喜欢为诸如集群系统上的节点状态之类的东西返回 xml。查看响应总是更容易阅读和评估,尽管在 JS 中更难操作。
  • 如果您使用 Firebug 或 Chrome/Safari 的 Web Inspector 之类的东西,您可以将 JSON 响应作为对象来举例。我建议这样做或使用chris.photobooks.com/json/default.htm 检查您的 JSON。
【解决方案2】:

JSON,因为 javascript 可以本地处理这个,所以你不必使用任何额外的库等来解析它。

【讨论】:

  • 大多数浏览器也可以原生处理 xpath,在这种情况下,不需要像使用 JSON 那样评估输出。
  • @jishi:这是真的,但是 JSON 是一个原生对象,大多数 JSON 解析器所做的不仅仅是eval(),因为仅仅使用eval() 是一个安全风险。在很多情况下,JSON 的带宽密集度要低得多。 stackoverflow.com/questions/974301/…
  • 使用xpath与将数据结构直接转换为原生JS对象是不一样的。为此,您仍然需要解析 XML。
  • @S Pangborn:JSON 不会是原生对象,因为它只是对象的字符串表示形式。 @bmoeskau:我知道,并且您假设人们想要将数据转换为本机 JS 对象,但情况并非总是如此。例如,如果你想遍历数据并构建它的 DOM-elements,那么 string -> js object -> DOM-objects 之间的转换可能是一个巨大的开销。更不用说,如果您只想从大型 XML 中获取单个值。
  • @jishi -- 如果你在做原生 JS 编程,也许可以。由于 OP 正在使用 Ext,我认为没有理由使用 xpath,因为通过 Ext API 可以更轻松地完成类似的事情。坦率地说,除了 2003 年左右的 XML“数据孤岛”之外,我还没有看到对 xpath + JS 的真正需求。
【解决方案3】:

如果您可以在服务器端高效地生成 JSON,那么 JSON 绝对是最佳选择(这对于大多数语言来说通常都不是问题)。

【讨论】:

    【解决方案4】:

    如果您正在处理大型数据集并且需要快速轻松地在该集合中查找数据,XML 可能会更快,因为它会原生解析它,并且使用原生 xpath 支持它可能会发现您的数据非常快。

    在这些情况下使用 JSON 需要对数据进行 eval,并且大多数 json 解析器还出于安全原因等原因验证大量代码,这意味着它不会是专门处理它的“本机”代码。

    这将对总处理时间产生巨大影响,如果您只在数据中使用一个小样本,这将是一个很大的开销。

    这两种技术各有利弊,因此更多地取决于将要使用的实际情况。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-06-17
      • 1970-01-01
      • 2021-03-25
      • 1970-01-01
      • 2012-01-10
      • 2013-10-06
      • 2017-05-07
      相关资源
      最近更新 更多