JSON(JavaScript Object Notation)—JavaScript对象表示法
关于JSON应该明白的几点:
- JSON是一种轻量级的数据格式,相对于以前的XML更加方便简洁
- JSON虽然是利用了JavaScript的语法模式来表示数据,但是其并不从属于JavaScript,其他语言一样拥有JSON
- 诸多语言都有针对JSON的解析器与序列化器,JavaScript也不例外
JSON语法
先在这儿纠正自己的一个错误:由于平时我们常见的json数据都是‘{}’形式的对象,因此我便以为json单一的就是‘{}’形式的对象。然而是错的!其还有数组(如:[1,2,3]也是json),简单值等都是json,具体有哪些下面会说到
JSON语法可以表示以下三种类型的值(也就是说:以下三种类型都是json):
- 简单值:
适用于JavaScript相同的语法,可以在json中表示字符串(必须用双引号引起来)、数值、布尔值、null。但是json不支持JavaScript中的undefined
比如:5、”Hello World!”是简单值,也是json
- 对象(即上面说到的‘{}’):
键值对中的值可以是简单值或复杂类型的值。‘键’与字符串类型的‘值’必须使用双引号引起来
比如:{“name”:”mall”,”age”:20}
- 数组:
数组中的值同样可以是简单或复杂类型
比如:[1,2,”德洛丽丝”,{“西部世界”:”伯纳德”}]
json不支持变量
JSON的解析与序列化
ECMAScript5对解析JSON的行为进行了规范,定义了全局对象JSON
JSON对象有两个方法:
JSON.stringify(…)
其将JavaScript对象序列化为JSON字符串JSON.parse(…)
将JSON字符串解析为原生JavaScript对象
这两个方法的使用很简单,因此不再赘述