你不知道的JSON.stringify()妙用

1 语法

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"}"

2 扩展用法

2.1 replacer

replacer可以是函数或者是数组

功能1: 改变属性
将isDead属性的值翻译成0或1,0对应false,1对应true

var user = {name: 'andy',addr: 'shanghai'};

JSON.stringify(user,function(key,value){
    if(key === 'isDead'){
        return value === true ? 1 : 0;
    }
    return value;
});

"{"name":"andy","isDead":0,"addr":"shanghai"}"

功能2:删除某个属性
将isDead属性删除,如果replacer的返回值是undefined,那么该属性会被删除

var user = {name: 'andy',value){
    if(key === 'isDead'){
        return undefined;
    }
    return value;
});

"{"name":"andy","addr":"shanghai"}"

功能3: 通过数组过滤某些属性
只需要name属性和addr属性,其他不要。

var user = {name: 'andy',['name','addr']);

"{"name":"andy","addr":"shanghai"}"

2.2 space

space可以是数字或者是字符串,如果是数字则表示属性名前加上空格符号的数量,如果是字符串,则直接在属性名前加上该字符串。

功能1: 给输出属性加上n个空格

var user = {name: 'andy',null,4);

"{
    "name": "andy","isDead": false,"age": 11,"addr": "shanghai"
}"

功能2: tab格式化输出

var user = {name: 'andy','\t');
"{
    "name": "andy","addr": "shanghai"
}"

功能3: 搞笑

JSON.stringify(user,'good');
"{
good"name": "andy",good"isDead": false,good"age": 11,good"addr": "shanghai"
}"

2.3 深拷贝

var user = {name: 'andy',addr: 'shanghai'};

var temp = JSON.stringify(user);
var user2 = JSON.parse(temp);

3 其他

JSON.parse() 其实也是支持第二个参数的。功能类似于JSON.stringify的第二个参数的功能

4 参考

相关文章

AJAX是一种基于JavaScript和XML的技术,能够使网页实现异步交...
在网页开发中,我们常常需要通过Ajax从后端获取数据并在页面...
在前端开发中,经常需要循环JSON对象数组进行数据操作。使用...
AJAX(Asynchronous JavaScript and XML)是一种用于创建 We...
AJAX技术被广泛应用于现代Web开发,它可以在无需重新加载页面...
Ajax是一种通过JavaScript和HTTP请求交互的技术,可以实现无...