AJAX学习笔记——JSON

JSON基本概念

1.JSON : JavaScript对象表示法( JavaScript Object Notation )
2.JSON是存储和交换文本信息的语法,类似XML。它采用键值对的方式来组
织,易于人们阅读和编写,同时也易于机器解析和生成
3.JSON是独立于语言的,也就是说不管什么语言,都可以解析json,只需要
按照json的规则来就行

JSON与XML比较

1.json的长度和xml格式比起来很短小
2.json读写的速度更快
3.json可以使用JavaScript内建的方法直接进行解析,转换成Javascript对象非常方便

JSON语法规则

1.JSON数据的书写格式是:名称/值对。
名称/值对组合中的名称写在前面(在双引号中) ,值对写在后面(同样在双引号中) ,中间用冒号隔
开:比如"name":"郭靖"
2.json的值可以是下面这些类型:
数字(整数或浮点数) , 比如123, 1.23
字符串(在双引号中)
逻辑值( true或false )
数组(在方括号中)
对象(在花括号中)
null

JSON解析

1.eval和JSON.parse
2.在代码中使用eval是很危险的!特别是用它执行第三方的JSON数据(其中
可能包含恶意代码)时,尽可能使用JSON.parse()方法解析字符串本身,该
方法还可以捕捉JSON中的语法错误。
使用eval解析

var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"郭黄蓉","age":30}]}';
var jsonobj = eval('('+jsondata+')');
alert(jsonobj.staff[0].name);

用eval方式不光解析了JSON字符串,而且还执行了JSON字符串中的一些方法,不会去看JSON字符串是否合法,JSON中的JS方法会直接执行,非常危险。
注意:在代码中无论何时,当你使用eval方法都是非常危险的,除非你能确定其中eval的参数确实是自己可以控制的、是安全的,尤其是使用eval方法去执行第三方的JSON数据,有可能会包含恶意代码,所以,在实际使用中,尽量使用JSON.parse方法解析JSON字符串。而且使用JSON.parse可以预报JSON字符串中的错误。

var jsondata='{"staff":[{"name":"洪七","age":alert(123)},{"name":"郭靖","age":35},{"name":"郭黄蓉","age":30}]}';
var jsonobj = eval('('+jsondata+')');
alert(jsonobj.staff[0].name);

使用JSON.parse解析

var jsondata='{"staff":[{"name":"洪七","age":70},{"name":"郭靖","age":35},{"name":"郭黄蓉","age":30}]}';
var jsonobj = JSON.parse(jsondata);
alert(jsonobj.staff[0].name);

JSON校验工具:
jsonlint.com
http://jsonlint.qqe2.com/

猜你喜欢

转载自www.cnblogs.com/songsongblue/p/11906761.html