什么是json
- JSON是一种轻量级的数据格式,相对于以前的XML更加方便简洁
- JSON虽然是利用了JavaScript的语法模式来表示数据,但是其并不从属于JavaScript,其他语言一样拥有JSON
- 诸多语言都有针对JSON的解析器与序列化器,JavaScript也不例外
语法
JSON表示为以下三种类型的值
1、简单值
json中的字符串、number、boolean、null,但是json不支持undefined这个值
注意点:json中的字符串必须用双引号或者单引号括起来
eg:"hello world!"
2、对象
键值对中的值可以是简单值也可以是复杂值,同样键值对的值与string的值都使用单双引号括起来
eg:{"name":"lili","age":20}
3、数组
数组中的值也可简单也可复杂
eg:["lucy",{"hanmei":"lilei"}]
json不支持变量
JSON的解析与序列化
ECMAScript5对解析JSON的行为进行了规范,定义了全局对象JSON
JSON对象有两个方法:
-
JSON.stringify(…)
其将JavaScript对象序列化为JSON字符串 -
JSON.parse(…)
将JSON字符串解析为原生JavaScript对象
{}和[]的区别:
一、JSON语法是JavaScript对象表示语法的子集。JSON数据的书写格式是:名称/值对。
(1)数据在键值对中
(2)数据由逗号分离
(3)花括号保存对象
(4)方括号保存数组
二、JSON的值:
(1)数字(整数或者浮点数)
(2)字符串
(3)逻辑值 (true或false)
(4) 数组
(5)对象
(6) null
三、在 JSON里[]是 Array(也就是数组),{}是Ojbect(也就是对象),
[] Array 的key 是 int,{} 的key 是 string。
例如 var dot1=["a"];就是一个数组
var dot2={"a"};就是一个对象
一个数组是可以包含多个对象的(类似二维、三维、多维数组,不一样的是一个是数组[],一个是对象{})
例如: var dot1=[{a:"a"},{b:"b"}]; dot1就包含了2个对象
同样,dot1={[{a:"a"},{b:"b"}]} 就是一个对象,只是这个对象包含了一个数组。
案列: