1、JSON是什么
JSON 语法是 JavaScript 语法的子集。
2、JSON格式
JSON有两种表示结构,对象和数组。
对象结构如下:
{
key1:value1,
key2:value2,
...
}
数组结构如下:
[
{
key1:value1,
key2:value2
},
{
key3:value3,
key4:value4
}
]
其中
关键字(key)是字符串
,而
值(value)
可以是
字符串,数值,true,false,null,对象或数组
3、操作JSON(增删改查)
定义JSON对象如下:
var obj = { 1: "value1", "2": "value2", count: 3, person: [ //数组结构JSON对象,可以嵌套使用 { id: 1, name: "张三" }, { id: 2, name: "李四" } ], object: { //对象结构JSON对象 id: 1, msg: "对象里的对象" } };
读取:
alert(obj.1); //会报语法错误,可以用alert(obj["1"]);说明数字最好不要做关键字 alert(obj.2); //同上
增加:alert(obj.person[0].name); //或者alert(obj.person[0]["name"]) alert(obj.object.msg); //或者alert(obj.object["msg"])
//往JSON对象中增加了一条记录 obj.sex= "男" //或者obj["sex"]="男"增加数据后的JSON对象如图:
修改:
obj.count = 10; //或obj["count"]=10
删除:
delete obj.count;
遍历:
for…in…
for (var c in obj) { console.log(c + ":", obj[c]); }
JSON字符串: 推荐使用官网实现方式(jsp中引入json2.js,基本支持各个游览器)
如: var jsonStr = '{"firstName":"John4" , "lastName":"Doe4" }';
var obj = JSON.parse(jsonStr);alert(obj.firstName);
1>jQuery插件支持的转换方式:
$.parseJSON( jsonstr ); //jQuery.parseJSON(jsonstr),可以将json字符串转换成json对象
2>JSON官方的转换方式 :
http://www.json.org/提供了一个json.js,这样ie8(兼容模式),ie7和ie6就可以支持JSON对象以及其stringify()和parse()方法;
可以在https://github.com/douglascrockford/JSON-js上获取到这个js,一般现在用json2.js。
3>浏览器支持的转换方式(Firefox,chrome,opera,safari,ie9,ie8)等浏览器:
JSON.parse(jsonstr); //可以将json字符串转换成json对象
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
JSON.stringify(jsonobj); //可以将json对象转换成json对符串
注:ie8(兼容模式),ie7和ie6没有JSON对象,推荐采用JSON官方的方式,引入json.js。
4>Javascript支持的转换方式 :
eval('(' + jsonstr + ')'); //可以将json字符串转换成json对象,注意需要在json字符外包裹一对小括号
注:ie8(兼容模式),ie7和ie6也可以使用eval()将字符串转为JSON对象,但不推荐这些方式,这种方式不安全eval会执行json串中的表达式。