使用json传输数据有什么优缺点

发布网友 发布时间:2022-04-23 07:13

我来回答

2个回答

懂视网 时间:2022-05-12 10:46

如果传输全部使用json, browser 将会快很多, 因为没有closing tag (xml or html), 大家怎么看这个问题?

回复内容:

浏览器会快很多?快在哪个步骤呢?是传输快还是解析快?

如果是说传输快,从信息的冗余来讲,closing tag 确实有那么一点浪费空间,换成json或者别的什么格式确实有道理。

但我们可以压缩http body,gzip压一压就能把这个语法overhead控制得很好。所以就算你换掉HTML,在传输层面也快不了太多。

另外HTML相对于json有一个优势就是容错率高,丢掉一两个tag影响不大。但如果用json,少掉一个双引号很有可能整个response都得扔掉了。HTML 在可读性方面也比json强很多。

你看,就单单为了影响并不大的closing tag而把HTML换成json,换来的仅仅是微乎其微的传输效率提升,捡了芝麻丢了西瓜。 @鲁小夫 回答已经很好。速度以外的问题,题主也可参考 为什么 Web 前端开发不抛弃 HTML 和 CSS,用纯 JavaScript 开发? - 前端开发 真的想要传输效率就不要基于字符串,HTML和JSON都是基于字符串的。 你用app不就好了, 界面都不用下, 传输基本都是json 答案是几乎没有差别,用json的话在性能低的设备上可能会更慢一点。

itunes PC 版本中的动态内容就是用二进制xml传输的,你有感觉快吗?

为什么没差呢?因为 close tag 是给开发者看的,实际传输中,专业一点的web服务器都是对页面 gzip 压缩的。

要快的话,应该想办法减少HTTP请求,所以 SPDY协议就是从这个思路出发设计的。 直接传输压缩后的二进制流才是最快的…… 直接连图片、样式表、字体和HTML一起打个包再压一压最快喵…… 试试使用angularjs开发一下就知道了,只要加载一个超大的首页,其他的全部json传输 有个说法,编程语言是面向人类的 其他答案说的很好了,题主不能忽略的问题还包括失去了直接使用html文本,以及开发模型复杂的弊端。这些是在公司做事不能忽略的重要问题。

热心网友 时间:2022-05-12 07:54

JSON 作为一种更轻、更友好的 Web services客户端的格式(多采用浏览器的形式或访问 REST风格 Web服务的Ajax应用程序的形式)引起了 Web 服务供应商的注意。
JSON剖析:优点和不足
  对于JSON,首先要明白JSON和XML一样也是一种简单文本格式。相对于XML,它更加易读、更便于肉眼检查。在语法的层面上,JSON与其他格式的区别是在于分隔数据的字符,JSON中的分隔符限于单引号、小括号、中括号、大括号、冒号和逗号
乍看上去,使用JSON的数据分隔符的优点可能并不那么明显,但存在一个根本性的缘由:它们简化了数据访问。使用这些数据分隔符时, JavaScript引擎对数据结构(如字符串、数组、对象)的内部表示恰好与这些符号相同。

  这将开创一条比DOM技术更为便捷的数据访问途径。下面列举几个JavaScript代码片段来说明这一过程,这些代码片段会访问先前的JSON代码片段中的信息:

访问JSON中的名称: addressbook.name
访问JSON中的地址: addressbook.address.street
访问JSON中的电话号码第一位:addressbook.address.phoneNumbers[0]
  如果您具备DOM编程经验,就能很快地看出区别;新手可以参看 Document Object Model 的这一外部资源,这里提供了关于数据导航的实例。

  JSON的另一个优点是它的非冗长性。在XML中,打开和关闭标记是必需的,这样才能满足标记的依从性;而在JSON中,所有这些要求只需通过一个简单的括号即可满足。在包含有数以百计字段的数据交换中,传统的XML标记将会延长数据交换时间。目前还没有正式的研究表明JSON比XML有更高的线上传输效率;人们只是通过简单的字节数比较发现,对于等效的JSON和XML有效负载,前者总是小于后者。至于它们之间的差距有多大,特别是在新的XML压缩格式下它们的差距有多大,有待进一步的研究。

  此外,JSON受到了擅长不同编程语言的开发人员的青睐。这是因为无论在Haskell中或 Lisp中,还是在更为主流的C#和PHP中,开发都可以方便地生成JSON(详见 参考资料)。

不足
  和许多好东西都具有两面性一样,JSON的非冗长性也不例外,为此JSON丢失了XML具有的一些特性。命名空间允许不同上下文中的相同的信息段彼此混合,然而,显然在JSON中已经找不到了命名空间。JSON与XML的另一个差别是属性的差异,由于JSON采用冒号赋值,这将导致当XML转化为JSON时,在标识符(XML CDATA)与实际属性值之间很难区分谁应该被当作文本考虑。

  另外,JSON片段的创建和验证过程比一般的XML稍显复杂。从这一点来看,XML在开发工具方面领先于JSON。尽管如此,为了消除您对这一领域可能存在的困惑,

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com