JSON可以代替XML吗网页能否用JSO

很多人对XML、HTML和JSON的理解有些问题,甚至对XML和HTML是不是语言都在争论,这篇文章就告诉你这三者是什么,帮你理清这三者的关系。

下面我们先明确下XML、HTML和JSON的概念。

XML

XML的全称是ExtensibleMarkupLanguage,意思是可扩展的标记语言,它是标准通用标记语言(StandardGeneralizedMarkupLanguage,SGML)的一个子集。那SGML又是什么呢?

在20世纪80年代早期,IBM提出在各文档之间共享一些相似的属性,例如字体大小和版面。IBM设计了一种文档系统,通过在文档中添加标记,来标识文档中的各种元素,IBM把这种标识语言称做通用标记语言(GeneralizedMarkupLanguage,GML)。经过若干年的发展,年国际标准化组织(ISO)开始对此提案进行讨论,并于年正式发布了为生成标准化文档而定义的标记语言标准(ISO),称为新的语言SGML,即标准通用标记语言。

SGML功能非常强大,是可以定义标记语言的元语言,然而由于SGML过于复杂,不适合在Web上应用,因此,W3C组织在年便开始设计一种可扩展的标记语言,以便能将SGML的丰富功能与HTML的易用性结合到Web应用中。年2月,W3C发布了XML1.0标准,其目的是为了在Web上能以现有的超文本标记语言(HTML)的使用方式提供、接收和处理通用的SGML。XML是SGML的一个简化子集,它以一种开放的、自我描述的方式定义了数据结构。在描述数据内容的同时能突出对结构的描述,从而体现出数据与数据之间的关系。

HTML

HTML全称是HypertextMarkupLanguage。Web页面(网页)也是一种文档,HTML就是用来编写这些文档的一种标记语言,文档的结构和格式的定义是由HTML元素来完成的,HTML元素是由单个或一对标签定义的包含范围。

XML是HTML的扩展吗

HTML的全称是HypertextMarkupLanguage(超文本标记语言),而XML的全称是(eXtensibleMarkupLanguage)可扩展的标记语言,这很容易让人联想到XML是通过增加新标记来扩展HTML的一种标记语言。实际上HTML和XML在标记语言中处于不同的层次。

①在编写HTML文档时,所有的标记都已经固定下来,我们不能去创造新的标记;而在编写XML文档时,我们可以任意地创建新的标记,包括中文的标记。所以说XML是可扩展的标记语言。

②在编写XML文档时,没有一套标准的标记供我们选择使用,需要我们自己去创建标记,所以我们说XML是创建标记语言的元语言。

SGML、HTML和XML之间是什么关系

SGML是一种在Web发明之前就早已存在的使用标记来描述文档资料的通用语言。它是一种定义标记语言的元语言。HTML和XML都是从SGML发展而来的标记语言,因此,它们有一些共同点,如相似的语法和标记的使用。不过HTML是在SGML定义下的一个描述性的语言,只是SGML的一个应用,其DTD作为标准被固定下来,而XML是SGML的一个简化版本,是SGML的一个子集,严格意义上来说,XML仍然是SGML。

HTML不能用来定义新的应用,而XML可以,例如RDF和CDF都是使用XML定义的应用。事实上,XML和SGML是兼容的,但又没有SGML那么复杂,它被设计用于有限带宽的网络,如Internet。XML规范的制定者之一TimBray说,XML的设计出发点是取SGML的优点,去除复杂的部分,使其保持轻巧,可以在Web上工作。

HTML、SGML和XML将继续用于其适合的地方,它们中的任何一个都不会使其他一个废弃。对于像新闻、网络日记、论坛留言等大部分短期的数据,HTML仍是在Web上快速发布数据的最简单的方法。如果数据要长期使用,并且需要更多的一些结构,我们更推荐使用XML。不同于HTML和XML,SGML可能永远不会在Internet上被广泛接受,因为它不是为某个网络协议而设计的,也从来没有为某个网络协议的需求而优化过。对于高端的、复杂结构的发布应用,SGML将继续使用。

JSON

JSON(JavaScriptObjectNotation)是一种轻量级的数据交换格式。易于人阅读和编写,同时也易于计算机解析和生成。它基于JavaScriptProgrammingLanguage,StandardECMA-rdEdition-December的一个子集。JSON采用完全独立于语言的文本格式,但是也使用了类似于C语言家族的习惯(包括C、C++、C#、Java、JavaScript、Perl、Python等)。这些特性使JSON成为理想的数据交换语言。

简单地说,JSON数据很容易构建和解析,而且JSON数据可以很容易地转换成JavaScript对象。

JSON是独立于语言的,它主要有以下两种数据结构:

名称/值对的集合。在不同的语言中,它被实现为对象(object)、记录(record)、结构(struct)、字典(dictionary)、哈希表(hashtable)、有键列表(keyedlist),或者关联数组(associativearray)。值的有序列表。在大部分语言中,它被实现为数组(array)。以上两种数据结构在大多数的编程语言中都有对应的实现,这使得JSON完全可以作为一种通用的数据交换格式,在不同的编程语言之间进行交换。

与XML相比,使用JSON有两个优势:

(1)JSON对象是类型化的,值可以是string、number、array、boolean、object或null类型;而XML是无类型的,所有的值都是字符串。

(2)使用JSON,你不需要再解析数据。

为什么要用JSON代替XML传输数据?

早期很多数据传输都是用XML文档作为载体,包括目前依然有很多项目使用XML文档作为数据载体,只不过对于Web应用,JSON有先天的优势,而且使用JSON可以节省数据的传输量,毕竟XML还需要自定义标签。

网页能不能用JSON来写?

相信看完前面的内容,题主就应该知道网页能不能用JSON来写了,显然是不能。JSON的重点是作为数据交换!HTML的重点是标记!适合浏览器对网页文档的解析。

#web前端#

我是专注于软件开发和IT教育的孙鑫老师,喜欢我的文章欢迎


转载请注明:http://www.aierlanlan.com/rzdk/2113.html