02.25 json可以代替xml,为啥网页不用json格式来写呢?

DearJackal



首先了解下什么是 JSON 和 XML?

Json 是一种轻量级的 数据交换格式 ,Douglas Crockford(Web开发领域最知名的技术权威之一,他是JSON、JSLint、JSMin和ADSafe的创造者)在2001年开始推广Json,直到2005年~2006年,雅虎和谷歌就开始广泛的进行使用此格式,因此很快正式成为了主流的数据格式。


XML是一种用于标记电子文件使用其具有结构性的标记语言。那么什么是标记语言,是一种将文本及文本相关的其他信息结合起来,展现文档结构和数据处理细节的电脑文字编码。制作网页我们用HTML进行布局,HTML就是网页标记语言,属于XML,是其在网页领域的应用。


其次分析 JSON 和 XML 的主要区别和应用场景

从概念上来讲,JSON 是一种 数据交换形式,XML 是一种 标记语言,用来展现文本信息结构。从中可以看出前者强调的是数据,后者强调的是标记与展现。


在数据应用领域,JSON 和 XML 都可以用于数据传输,但是JSON具有良好的可读和便于快速编写的特点,可以用于在不同平台之间进行数据交换,其兼容性高,同时具备多种语言的编写习惯,比如C, C++, C#, Java, JavaScript, Perl, Python等,因此这些特性让JSON成为最佳的数据交换语言。在Web Serivice 应用领域中,XML仍有不可动摇的地位,JSON是无法取代的,但是对于大多数Web应用来说,根本不需要复杂的XML来传输数据,数据交换格式JSON 提供了更好的简单性和灵活性,如果使用XML反而增加了解析的复杂度和响应时间。


其次在说网页应用领域,这是标记语言最擅长干的啦,因为做网页就像建房子,你需要用标记语言告诉这房子怎么建?卧室多大?客厅多大? 卧室放什么东西,家具和电器怎么摆放之类的,同时装修时,墙应该刷什么颜色,是否挂什么摆件等等,使用标记语言描述这些不仅结构清晰,易读性强,如果使用JSON,就是一堆晦涩难懂的字符串,看起甭提有多费劲了。用来制作网页的HTML还有一个特点,能很方便的引入CSS,进行页面布局的调整,就好比沙发该怎么放,墙刷什么颜色,该铺什么底板,引入CSS能让HTML标记语言更加强大,除此之外,在加上JS,定义用户与界面的交互行为,这一些成熟工具和架构,让HTML越发强大,让其更擅长制作网页。如果换成JSON去定义,缺乏这些支持,根本无法制作网页,反而让工作一团糟。


小节

今天的分享就和大家聊到这里,关于 JSON 和 XML 区别比较多,这里只是将主要的重点区别拿出来给大家分享,就好比术业有专攻的道理一样,各自做擅长的领域即可,没必要什么都要去做,反而什么都做不好。


前端达人


json可以代替xml部分功能,但并不能完全替代。能替代的功能是数据描述,不能替代的是结构描述。关于这一点,我详细说明一下。

首先请了解一下前端开发或叫网页开发的内容,包括四部分:

1、结构,即Html,或xml

2、样式,即Css

3、形为,Javascript

4、数据,xml或json

结构、样式、形为、数据的概念,大约在2003左右吧(具时间不记得了,反正十几年前),ECMA就已经提出了。ECMA全称是中文名称为欧洲计算机制造商协会,主要是提供一些计算机规范。不过当时的浏览器还是IE的天下,微软牛逼丫根儿不听他们的。

之后十几年不断发展、完善过程,形成比较成熟的开发思路。

一、先说结构与样式。

即,采用html描述网页结构,样式由css处理,之前Html还有一些属性例如width,height,等,后来都被弃用,采用css的width或height来设置宽度。这就是结构与样式的分离。由于Html是基于xml为基础的,网页也可以用xml描述结构,例如你自定义一个节点叫weishakeji,css照样可以给它赋样式,完全和html一样。

二、再说结构与形为。

用Html或xml描述的网页元素,它如何响应鼠标事件或用户操作呢?这是由Javascript来控制的,虽然我们也可以在Html元素中直接写Js,例如

但这样混在一起不好阅读代码,一般会分离到单独的js文件中。

三、再说结构与数据。

用Html或xml描述网页结构,然后显示具体的内容时,这些内容可以用XML存放,也可 以用Json存放。如果用xml存放,是可以直接用于网页显示的,前面说了,xml直接用于网页结构描述,css渲染效果。但是它既表示结构,又表示数据,不方便。当然也可以用XSL语言解析xml数据显示到html中,XSL 指扩展样式表语言(EXtensible Stylesheet Language)。但是XSL解析效率比较低,语法不友好,难以阅读,最终没有流行起来。不过很多浏览器都支持,想用也可以。

四、Json与xml

Json是一个单纯的数据源,它不能描述网页结构,这是它不能用来做网页的重要原因,如果真的用它描述网页,并不方便,反而会变得繁杂。例如:

内容

如果用Json呢,如果描述上述节点的属性和内容?还是用Html描述更方便。

Json作为数据源,它的执行效率更高,但它必须依赖于Javascript,因为它本身就是一个Javascript对象,它不是独立的,它是js!

-----

所以,正常的开发思路是,Html描述网页结构,CSS渲染页面效果,Javascript提供交互形为,并读取和解析Json数据,显示到Html所描述的某个节点上。

每个都有自己的特点和专长,可以混用,但不可替代。


学习考试系统


json为什么火,没搞懂,说可读性,可理解性,约束性,似乎xml更上乘;说到网络传输节省带宽又有扩展性,似乎tlv结构更加节省,还支持原生二进制。思来想去,只可能是被web前端带火的,js脚本语言天生就不是操作二进制的,前后端取个平衡,得,json火了。


玉樹清風


xml也不用做网页布局。必须用html标记语言才可以。这个是标准。json只是数据结构而已,不能作为直接放网页用。


宏之博信息技术


1.json只是在某方面上优于xml 比方说数据传输他占了更小的字节 某方面的可读性优于xml

2.json在前端的角色是替代不了xml的 以xml格式的html不进可读性要优于json,而且也是一个大的生态环境的基础,你可以在html里引入文件 引入标签 或者利用xml定义标签 但是用json很难办到 就算办到可读性也远不如json

3.统一的解析标准 json很灵活 但是太灵活导致没有一个确切的标准去解析他,但是xml html却可以 他们有自己的一套标准 而且可以再次基础上进行扩展 例如解析p标签 解析div标签等等

4.大的生态环境,众多公司基于xml html的开发 生态环境如此 json不会轻易改变的了

5.不同传输协议的要求而定


IT兴趣联盟


json就一个简单的键值对信息,连做配置文件资格都不够,还取代xml?楼主新手一枚,要学习的还很多。


风yuanwen


json替代xml是从数据传输角度看,网页是用来展示的。


浪潮之巔


一个是语言,一个是数据结构。json替代xml也仅仅是在数据传输上,要说json目前完全替代xml,我认为至少目前还没有


Klma


我们公司前端自己写的框架,页面就是用json做的。json上配置指定函数名,然后用angular在js里写逻辑。json页面可以根据数据库生成,要配什么查询条件的话在json里配置。我也是第一次见这种一脸懵逼


吴雨吴球


定位完全不同。JSON目标是简单的对象数据通信,属于轻量级的数据交换格式,而XML指可扩展的标记语言,能上升到语言的东西,都非常强大,也就是能作为数据通信格式的万金油,楼主了解一下SOAP格式,就知道XML有多复杂了。简单来说就是小刀削苹果,大刀砍树。因为我们平时也就吃吃水果,几乎不会去砍树,当然,小刀也能砍树,就是要累死,大刀削苹果也一样的道理。


分享到:


相關文章: