JSON.stringify(value [replacer] [space])
1. value: 是必须要的字段。就是你输入的对象,比如数组。
最常用的用法
var obj = {
name: "Shelock",
age: 21
}
var json = JSON.stringify(obj);
console.log(json, typeof json);//{"name":"Shelock","age":21} string
var _obj = JSON.parse(json)
console.log(_obj, typeof _obj);//Object {name: "Shelock", age: 21} "object"
2. replacer:这个是可选的。它又分为2种方式,一种是方法,第二种是数组。
- 方法:
var a = ['name', 'age'];
var b = ['grade', 'class']
var json = JSON.stringify(a,b);
console.log(json, typeof json);//["name","age"] string
- 数组:
- 如果value是数组,那么如果replacer再是数组就没有意义了,也就是说只会序列还value,replacer会被忽略。如:
var a = ['name', 'age'];
var b = ['grade', 'class']
var json = JSON.stringify(a,b);
console.log(json, typeof json);//["name","age"] string
- 如果value是对象,replacer是数组,则是输出replacer中出现过的值的obj的序列化,如下:
var obj = {
name: "Shelock",
age: 21,
class: 1
};
var b = ['name', 'grade', 'class']
var json = JSON.stringify(obj,b);
console.log(json, typeof json);//{"name":"Shelock","class":1} string
3. space:可选,用来做分隔符的。
- 如果省略的话,那么显示出来的值 就没有分隔符。直接输出来,如1中的例子
- 如果是一个数字的话,那么它就定义缩进几个字符,最大为10。
var obj = {
name: "Shelock",
age: 21,
class: 1
};
var json = JSON.stringify(obj, null, 2);
console.log(json);//
/*{
"name": "Shelock",
"age": 21,
"class": 1
}*/
- 如果是一些转义字符,比如“\n”,表示换行,那么它每行后再加一个换行。
var obj = {
name: "Shelock",
age: 21,
class: 1
};
var json = JSON.stringify(obj, null, '\n');
console.log(json);//
/*
{
"name": "Shelock",
"age": 21,
"class": 1
}
*/
- 如果仅仅是字符串,OK,就在每行输出值的时候把这些字符串附加上去就OK。当然,最大长度也是10个字符。
var obj = {
name: "Shelock",
age: 21,
class: 1
};
var json = JSON.stringify(obj, null, 'omg');
console.log(json);//
/*
{
omg"name": "Shelock",
omg"age": 21,
omg"class": 1
}
*/