JSON.stringify(value[, replacer[, space]])
通常用法:数组
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user); "{"name":"andy","isDead":false,"age":11,"addr":"shanghai"}"
replacer能够是函数
或者是数组
。函数
功能1: 改变属性值
将isDead属性的值翻译成0或1,0对应false,1对应truespa
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user, function(key, value){ if(key === 'isDead'){ return value === true ? 1 : 0; } return value; }); "{"name":"andy","isDead":0,"age":11,"addr":"shanghai"}"
功能2:删除某个属性
将isDead属性删除,若是replacer的返回值是undefined
,那么该属性会被删除。翻译
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user, function(key, value){ if(key === 'isDead'){ return undefined; } return value; }); "{"name":"andy","age":11,"addr":"shanghai"}"
功能3: 经过数组过滤某些属性
只须要name属性和addr属性,其余不要。code
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user, ['name', 'addr']); "{"name":"andy","addr":"shanghai"}"
space能够是数字
或者是字符串
, 若是是数字则表示属性名前加上空格符号的数量,若是是字符串,则直接在属性名前加上该字符串。ip
功能1: 给输出属性前加上n个空格
字符串
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user, null, 4); "{ "name": "andy", "isDead": false, "age": 11, "addr": "shanghai" }"
功能2: tab格式化输出
get
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; JSON.stringify(user, null, '\t'); "{ "name": "andy", "isDead": false, "age": 11, "addr": "shanghai" }"
功能3: 搞笑
string
JSON.stringify(user, null, 'good'); "{ good"name": "andy", good"isDead": false, good"age": 11, good"addr": "shanghai" }"
var user = {name: 'andy', isDead: false, age: 11, addr: 'shanghai'}; var temp = JSON.stringify(user); var user2 = JSON.parse(temp);
JSON.parse() 其实也是支持第二个参数的。功能相似于JSON.stringify的第二个参数的功能。io