JavaScript基础知识总结——json
2017-08-09 本文已影响0人
More_5897
JSON
- JSON(JavaScript Object Notation)是一种基于文本的数据交换格式。
- 几乎所有的编程语言都可以使用json来进行数据交互和处理
- 而另一方面随着REST、像MongoDB这样的NoSQL技术或标准的广泛使用,JSON也正成为一种被推荐的数据交互格式。
- json语法可以表示以下三种类型的值:简单值(key/value),对象(Object),数值(array)。
基本语法
-
简单值
又叫键值对 -
对象
一个JSON对象是包含了一组未排序键值对的集合。下面例子中的address就是一个JSON对象:
{
“address” : {
“line1” : “555 Main Street”,
“city” : “Denver”,
“stateOrProvince” : “CO”,
“zipOrPostalCode” : “80202”,
“country” : “USA”
}
}
-
数组
JSON中[]来包含数组元素,参考下面的例子:
{
“people” : [
{ “firstName”: “John”, “lastName”: “Smith”, “age”: 35 },
{ “firstName”: “Jane”, “lastName”: “Smith”, “age”: 32 }
]
}
解析和序列化
-
JSON对象
JSON对象是一个JavaScript用来对json数据进行解释和序列号的对象,支持这个对象浏览器有:IE8+,Firefox3.5+,Safari4+,Chrome。此对象有两个方法:stringify(),parse()。 -
序列化
JavaScript中要对json数据进行序列号,使用的是JSON.stringify()。这个方法可以接受三个参数:
1.要序列化的JavaScript对象(必须);
2.过滤器,这个参数可以是一个数组,也可以是个函数(可选);
3.最后一个参数是一个选项,标书JSON 字符串中要不要保留缩进(可选),int,表示缩进的空格数,。
var book = {
"title":"xxxx",
"authors":["aaa"],
edition: 3,
year:2001
};
var jsonText1 = JSON.stringify(book); //序列化整个对象
var jsonText2 = JSON.stringify(book,["title","edition"]); //序列对象中与数组中对应的对象。
var jsonText3 = JSON.stringify(book,function(key,value){ //根据switch语句输出对象的序列化对象
switch(key){
case:"authors";
return value.jion(",")
case:"year"
return 5000
}
}
var jsonText4 = JSON.stringify(book,null,1);
//jsonText1
{"title":"xxxx","authors":["aaa"],"edition": 3,"year":2001}
//jsonText4
{
"title":"xxxx",
"authors":["aaa"],
"edition": 3,
"year":2001
}
-
解析
JavaScript中要对json数据进行序列号,使用的是JSON.stringify()。这个方法可以接受两个参数:
1.要解析的JavaScript字符串(必须);
2.还原函数,这个参数可以是一个数组,也可以是个函数(可选);
var book = {
"title":"xxxx",
"authors":["aaa"],
edition: 3,
year:2001,
releaseDate: new Date(2011,11,1)
};
var jsonText1 = JSON.stringify(book); //序列化整个对象
var book1 = JSON.parse(jsonText1,function(key,value){
if(key=="releaseDate"){
return new Date(value); //将原本的字符串还原成Date对象
}else{
return value
}
}