一、JSON是一种结构化的数据表示方式,JSON并不是javascript独有的数据结构,其他语言也可以对json进行解析和序列化
二、json基本组成:1简单值、2对象、3数组
简单值:
10
"hello"
true
null
对象:
//javascript表示对象方式
var obj = {
name : "susan",
age : 21
}
//json表示对象方式
{
"name":"susan",
"age" : 21
}
3数组
//javascript表示方式
var arr = ["susan", 10, true];
//json表示方式
["susan", 10, true]
ps:一般情况下都是把json结构数据存放在一个文本里面,然后通过XMLHttpRequest加载json
三、解析和序列化
使用javascript解析json时,早期采用的是eval()函数进行解析,但是不安全,会产生恶意代码
var json = '[{"name":"susan","age":10},{"name":"jerry","age":20}]'; json = eval(json);//使用eval()解析json
现在ECMAScript5对解析JSON进行了规范,定义了全局对象JSON。该对象提供了2个方法:一个是javascript对象解析成json字符串stringify(),还有一个是json字符串转换为javascript对象parse()
var json = '[{"name":"susan","age":10,"address":"SZ"},{"name":"jerry","age":20,"address":"SH"}]'; var obj = JSON.parse(json);//json字符串解析成javascript对象
var obj = JSON.parse(json, function(key, value){
if(key == "name"){
return "Mr." + value;
} else {
return value;
}
},4);
var obj =[{name:"susan",age:10,address:"SZ"},{name:"jerry",age:10,address:"SH"}]; var json = JSON.stringify(obj);//javascript对象序列化json字符串
var json = JSON.stringify(obj,function(key,value){
switch(key){
case "name":
return:"Mr." + value;
case "age":
return:value + "岁";
case address":
return:"address:" + value;
default:
return value;
}
},4);
可以使用toJSON()方法将莫一组对象返回指定的值
浙公网安备 33010602011771号