JSON
json数据格式:
1,json全称JavaScript Object Notation。
2,通过键值对存储数据,也可通过数组的方式。
3,json不是JavaScript的子集
-json可以包含U+2028和U+2029,js字符串不能。
json数据格式特点:
1,以{起始,}结束的键值对或数组。
2,双引号包裹键名。不可用单引号。
3,JSON字符串中不可添加注释。
反引号``:es6加入的字符串模板的工具,在里头不仅可以写上换行的字符串,还可以加上一些替换的变量。
JSON的优势:和xml的比较。
1,数据结构更加简化,不需要成对标记。
2,对象查找方式比dom结构化查找快速。
3,JSON中更丰富的数据类型。
js中如何使用json数据:
1,JSON数据本质上是一个字符串。
2,可以通过eval()、JSON.parse()等方式转化为对象。
3,注意使用try catch,避免数据的转化异常。
其他语言中如何使用JSON数据:
1,很多语言都内置 了JSON的包,模块,函数。
2,从数据库/缓存等数据源中取出JSON数据格式。
3,转化为可用的对象或直接使用。
①键与值都需要用引号括起来 "键"
②键值之间用冒号 "键":"值"
③键值对之间用逗号隔开"键":"值","键":"值"
值为字符串的时候带引号,其他时候可以不带。
JSON对象:
1,仅有两个方法parse()和stringify();
2,parse()和stringify()方法调用时注意try catch。
3,ie8支持,兼容性好。
JSON.parse();//并不是只有JSON数据格式才可以使用,只要是字符串都行。
1,将参数字符串转化为对象或值。
2,第二个参数接受一个解析函数。解析函数有两个参数,属性名,属性值
3,注意去除尾逗号。
eval();//运行语句,将语句作为js语句去执行。将字符串转换为对象或值,eval()参数中的js语句会被执行,而上面方法会报错不符合json语法,使用该方法时,需要在传入的参数字符串两端加上(),如:
var data = '{"student" : [{"name":"鸣人","age":17}, {"name":"小樱","age":17},{"name":"佐助","age":17}]}'; eval('(' + data + ')');
JSON.stringify();
1,将值或对象转化为JSON数据格式。
2,第二个参数接受一个替换函数。
3,第三个参数接受一个缩进格式。最多接收10个空格。
补充:
字符串必须使用双引号。
数值必须以十进制表示,且不能使用NaN和Infinity
JSON不支持JavaScript中的undefined
JSON即使JavaScript中的内置对象,只有两个方法,也是一种数据格式。