JSON简介:JavaScript对象表示法(JavaScript Object Notation),是一种轻量级的数据交换格式,是存储和交换文本信息的语言规范,JSON采用完全独立于语言的文本格式,比XML更小、更快、易于解析,是一种理想的数据交换语言。
JSON优点: JSON是一种纯文本格式、具有层级结构的数据,允许在值中嵌套一些其他值;JSON可通过JavaScript进行解析,可使用AJAX进行传输;比XML更加简洁,读写速度更快。
JSON缺点:要求字符集,必须是Unicode,受约束性强;语法过于严谨,必须遵守JSON语法的四个准则。
JSON的四个基本准则:并列的数据之间用逗号(,)分隔;映射用冒号(:)表示;并列的数据集合(数组)用方括号([ ])表示;映射的集合(对象)用大括号({ })表示。
JSON的两种的基本结构
对象结构:是由key/value键值对所构成的集合,以”{”大括号开始,以”}”大括号结束,中间部分由0或多个以”,”分隔的key/value对构成,key和value之间以”:”分隔。例如:
{
key1:value1,
key2:value2,
......
}
数组结构:值的有序结合,以”[”开始,以”]”结束,中间由0或多个以”,”分隔的值列表组成。例如:
[
{
key1:value1,
key2:value2
},
{
key3:value4,
key5:value5
}
]
JSON字符串与JSON对象
JSON字符串: 指符合JSON格式的JS字符串,例如:var json = "{name:"xiaoming",age:"12"}"
。
JSON对象:指符合JSON格式的JS对象,例如:var json = {name:"xiaoming",age:"12"}
。
JS中对JSON的增删改查操作
创建一个JSON对象
var manager = {
name:"小王",
department:"销售部",
contact:["123456","234567","345678"],
employee:[{name:"小明",age:20},{name:"小李",age:22}]
}
从JSON中读取数据: manager.employee[0].name;
向JSON中写数据: manager.age = 30;
修改JSON中的数据: manager.name = “小陈”;
删除JSON中的数据: delete manager.name;
遍历JSON对象:
for (var i in manager){
console.log(i + ":", manager[i]);
}
JSON解析方法
JSON字符串:var jsonStr = '{name:"小陈",age:23}'
;
1、使用eval()方法,eval()不仅解析了JSON字符串,而且执行了JSON字符串中的一些方法,eval()方法比较危险。
var jsonObj = eval("("+jsonStr+")") ;
alert(jsonObj.name);
2、使用parse()方法将JSON字符串转化为JSON对象,此方法比较安全。
var jsonObj = JSON.parse(jsonStr) ;
alert(jsonObj.name);
3、使用stringify()方法
var jsonObj = JSON.stringify(jsonStr) ;
alert(jsonObj.name);
4、jQuery中使用parseJSON()方法
var jsonObj = $.parseJSON(jsonStr) ;
alert(jsonObj.name);