json简介

来源:互联网 发布:四级长篇阅读知乎 编辑:程序博客网 时间:2024/05/01 02:53

XML——这种用于表示客户端与服务器间数据交换有效负载的格式,几乎已经成了Web services的同义词。然而,由于Ajax和REST技术的出现影响了应用程序架构,这迫使人们开始寻求`XML的替代品,如:JavaScript Object Notation(JSON)。

JSON 作为一种更轻、更友好的 Web services客户端的格式(多采用浏览器的形式或访问 REST风格 Web服务的Ajax应用程序的形式)引起了 Web 服务供应商的注意

 

对于JSON,首先要明白JSON和XML一样也是一种简单文本格式。相对于XML,它更加易读、更便于肉眼检查。在语法的层面上,JSON与其他格式的区别是在于分隔数据的字符,JSON中的分隔符限于单引号、小括号、中括号、大括号、冒号和逗号。下图是一个JSON有效负载:

{"addressbook": {"name": "Mary Lebow",    "address": {        "street": "5 Main Street"        "city": "San Diego, CA",        "zip": 91912,    },    "phoneNumbers": [        "619 332-3452",        "664 223-4667"    ] }}

  将上面的JSON有效负载用XML改写,如下:

<addressbook> <name>Mary Lebow</name> <address>     <street>5 Main Street</street>    <city zip="91912"> San Diego, CA </city>    <phoneNumbers>      <phone>619 332-3452</phone>      <phone>664 223-4667</phone>    </phoneNumbers> </address></addressbook>

  是不是很相似?但它们并不相同。下面将详细阐述采用JSON句法的优点和不足。

 

可读性 
  JSON和XML的可读性可谓不相上下,一边是建议的语法,一边是规范的标签形式,很难分出胜负。 
  ·可扩展性 
  XML天生有很好的扩展性,JSON当然也有,没有什么是XML能扩展,JSON不能的。 

  ·编码难度 
  XML有丰富的编码工具,比如Dom4j、JDom等,JSON也有json.org提供的工具,但是JSON的编码明显比XML容易许多,即使不借助工具也能写出JSON的代码,可是要写好XML就不太容易了。 
  ·解码难度 

  XML的解析得考虑子节点父节点,让人头昏眼花,而JSON的解析难度几乎为0。这一点XML输的真是没话说。 
  ·流行度 

  XML已经被业界广泛的使用,而JSON才刚刚开始,但是在Ajax这个特定的领域,未来的发展一定是XML让位于JSON。到时Ajax应该变成Ajaj (Asynchronous JavaScript and JSON)了

 

     体积小

 

    传统的XML标记将会延长数据交换时间。目前还没有正式的研究表明JSON比XML有更高的线上传输效率;人们只是通过简单的字节数比较发现,对于等效的JSON和XML有效负载,前者总是小于后者

 

不足

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

  另外,JSON片段的创建和验证过程比一般的XML稍显复杂。从这一点来看,XML在开发工具方面领先于JSON