JSON

 

JSON指JavaScript对象表示法(JavaScript Object Notation),是一种轻量级的数据交换格式,采用完全独立于编程语言的文本格式来存储和表示数据,有效地提升网络传输效率。

语法规则

在JS语言中,一切皆对象。任何支持的类型都可以通过JSON来表示,如数字、字符串、逻辑值、对象、数组、null。
对象和数组是比较特殊且常用的两种类型:

  • 对象表示为键值对
  • 数据由逗号分隔
  • 花括号保存对象
  • 方括号保存数组

对象:对象在JS中是使用花括号包裹起来的内容。在面向对象语言中,key为对象的属性,value为对应的值。键名可以使用整数和字符串来表示,值的类型可以是任意类型。
数组:数组在JS中是方括号包裹起来的内容。在JS中,数组是一种比较特殊的数据类型,可以像对象那样使用键值对,也可以使用索引,值的类型也可以是任意类型。

JSON与JS对象的关系

JSON是JS对象的字符串表示法,使用文本表示JS对象信息,本质是字符串。

JSON和JS对象互转

从对象转换为JSON字符串,使用JSON.stringify()方法
从JSON转换为对象,使用JSON.parse()方法

和XML的对比

可读性

JSON和XML的可读性可谓不相上下,一边是简易的语法,一边是规范的标签形式。

可扩展性

XML有很好的扩展性,JSON也有。不过JSON在Javascript主场作战,可以存储Javascript复合对象,有着xml不可比拟的优势。

编码难度

XML有丰富的编码工具,JSON也有提供的工具。不过,xml文档结构上的字符更多。

解码难度

XML的解析方式有两种:
一是通过文档模型解析,也就是通过父标签索引出一组标记。但是这样是要在预先知道文档结构的情况下使用,无法进行通用的封装。
另外一种方法是遍历节点(document以及childNodes)。可以通过递归来实现,不过解析出来的数据仍旧是形式各异,往往也不能满足预先的要求。

类似XML的特性

  • JSON是纯文本
  • JSON具有“自我描述性”
  • JSON具有层级结构
  • JSON可通过JavaScript进行解析
  • JSON数据可使用AJAX进行传输

相比XML的不同之处

  • 没有结束标签
  • 更简短
  • 读写速度更快
  • 能够使用内建的JavaScript eval()方法进行解析
  • 使用数组
  • 不使用保留字

对于AJAX应用程序来说,JSON比XML更快更易使用

JSON最常见的用法之一,是从Web服务器上读取JSON数据(作为文件或作为HttpRequest),将JSON数据转换为JavaScript对象,在网页中使用。

参考源

百度百科:https://baike.baidu.com/item/JSON/2462549?fr=aladdin
W3school:http://www.w3school.com.cn/json

原文地址:https://www.cnblogs.com/thevilewind/p/9128159.html