当前位置: 首页 > 面试题库 >

解析JSON比解析XML更快

孟均
2023-03-14
问题内容

我正在创建一个复杂的JavaScript库,用于与公司的服务器端框架一起使用。

服务器端框架将其数据编码为简单的XML格式。没有花哨的命名空间或类似的东西。

理想情况下,我想将浏览器中的所有数据解析为JSON。但是,如果这样做,我需要重写一些服务器端代码以吐出JSON。这很痛苦,因为我们拥有无法轻易更改的公共API。

我真正关心的是浏览器中解析JSON和XML的性能。真的有很大的区别要关注吗?还是应该专门使用JSON?是否有人在两者之间的性能差异方面有任何经验或基准?

我意识到大多数现代Web开发人员都可能会选择JSON,我明白了为什么。但是,我真的只是对性能感兴趣。如果确实存在巨大差异,那么我准备花费额外的精力为客户端生成JSON服务器端。


问题答案:

JSON应该是更快的,因为它是 JS Object
Notation,这意味着它可以被JavaScript本地识别。在PHP的GET方面,我经常会这样做:

<script type="text/javascript">
    var data = <?php json_encode($data)?>;
</script>

另外…您真的必须在“生成”
JSON中添加什么“额外的精力”?当然不能说您将手动构建JSON字符串吗?几乎每种现代的服务器端语言都具有将本机变量转换为JSON字符串的库。例如,PHP的核心json_encode函数将如下转换关联数组:

$data = array('test'=>'val', 'foo'=>'bar');

进入

{"test": "val", "foo": "bar"}

这只是一个JavaScript对象(因为JS中没有关联数组(严格来说))。



 类似资料:
  • 问题内容: 我有一个XML文件,例如 如何将其解析为JSON结构文件? 问题答案: 对于一个简单的解决方案,我建议使用Jackson库,它是一个Java库,用于生成和读取带有XML扩展名的JSON,因为它只需几行简单的代码就可以将任意复杂的XML转换为JSON。 input.xml Java代码: 该演示使用Jackson 1.7.7 (较新的1.7.8也可以使用),Jackson XML Dat

  • untangle untangle 是一个简洁的用于解析 XML 文档的库。输入一个 XML 文档后,untangle 将文档的结构映射成结点和属性,并返回一个 Python 对象。 形如以下的 XML 文件: <?xml version="1.0"?> <root> <child name="child1"> </root> 可以使用以下的方法进行加载: import untangl

  • json 库能够解析字符串或文本中的 JSON 内容。 该库将 JSON 解析为 Python 字典或列表,也能将 Python 字典或列表转换为 JSON 字符串。 解析 JSON 如下的 JSON 格式的字符串: json_string = '{"first_name": "Guido", "last_name":"Rossum"}' 如下代码能够将其解析: import json par

  • 问题内容: 我不是开发人员,只是涉足编程。我从来不了解的一个领域是XML解析。可悲的是,对于我最新的“项目”,我需要为一个Android应用执行此操作。它是我正在工作的原型。 我有这个XML(模型文件): 我有一些代码可以让我获得每个的NodeList: 我不确定下一步该怎么做。我的代码对此似乎很长。我一直在搜寻更好的方法,但发现一些更简洁的代码,无法上班。 有没有很好的Android XML教程

  • 问题内容: 场景:我正在尝试解析一个XML结构,但我不知道如何在xml属性值包含文本和更多嵌套值的情况下建立结构。所有其他属性都已正确设置,我不确定是否需要获取源的值并创建一个单独的解析器来检索元素的值。 编辑: 我正在尝试将源解析为以下形式的字符串:你好%{first_name}%{last_name} 用当前结构解组xml字符串将返回一个空结构 使用innerxml的@plato将源设置为:

  • 主要内容:解析 XML 文档,解析 XML 字符串,跨域访问,XML DOM所有现代浏览器都有内建的 XML 解析器。 XML 解析器把 XML 文档转换为 XML DOM 对象 - 可通过 JavaScript 操作的对象。 解析 XML 文档 下面的代码片段把 XML 文档解析到 XML DOM 对象中: if (window.XMLHttpRequest) {// code for IE7+, Firefox, Chrome, Opera, Safari xmlht