1.JSON语法
JSON是一种轻量级的数据交换花样。
JSON语法能够示意以下三种范例的值:
简朴值:string,number,boolean,null,不支持undefined
对象
数组
语法:
JSON字符串必需运用双引号
没有声明变量
没有末端的分号
2.JSON剖析与序列化
2.1JSON序列化
序列化函数:JSON.stringify()
JSON.stringify()可吸收三个参数:
要序列化的JavaScript对象
一个过滤器(能够是一个数组也能够是一个函数)
掌握效果中的缩进和空白符
用法1:过滤效果
//数组过滤器
var book = {
"title":"Professional JavaScript",
"edition":3,
"year":2011,
"authors":[
"EvanChen",
"Nicholas"
]
};
var jsonText = JSON.stringify(book,["title","edition"]);//jsonText 中只包括title,edition两个属性
//函数过滤器
var book = {
"title":"Professional JavaScript",
"edition":3,
"year":2011,
"authors":[
"EvanChen",
"Nicholas"
]
};
var jsonText = JSON.stringify(book,function(key,value){
switch(key){
case:"authors":
return value.join(",");
case:"year":
return 5000;
case:"edition":
return undefined;//相当于删除该属性
default:
return value;
}
}
);//jsonText 中只包括title,edition两个属性
用法2:字符串缩进
var book = {
"title":"Professional JavaScript",
"edition":3,
"year":2011,
"authors":[
"EvanChen",
"Nicholas"
]
};
var jsonText = JSON.stringify(book, null,4);
console.log(jsonText);
//输出效果
{
"title": "Professional JavaScript",
"edition": 3,
"year": 2011,
"authors": [
"EvanChen",
"Nicholas"
]
}
2.2剖析选项
函数:JSON.parse()
JSON.parse()可吸收两个参数
JSON数据
复原函数,该函数将在每一个键值对上挪用
var book = {
"title":"Professional JavaScript",
"edition":3,
"year":2011,
"authors":[
"EvanChen",
"Nicholas"
],
releaseDate:new Date(2011,11,1)
};
var jsonText = JSON.stringify(book);
var bookCopy = JSON.parse(jsonText,function(key,value){
if(key==="releaseDate"){
return new Date(value);
} else{
return value;
}
}
);
console.log(bookCopy.releaseDate.getFullYear());