参考语法
JSON.stringify(value[, replacer [, space]])
个别在应用JSON.stringify
常见有三种情景
-
仅仅转换成字符串
var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}] var jsonstr = JSON.stringify(arr); console.log(jsonstr);
这种简略不便,然而一点都不难看,所以咱们能够持续改良下
-
增加字符
var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}] var jsonstr = JSON.stringify(arr, null," "); console.log(jsonstr);
其实很简略,就是在第三个参数里增加了一个空格,当然你也能够增加\n
or \t
这样的特殊字符
-
过滤数据,批改replacer参数
var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}] var jsonstr = JSON.stringify(arr, ["age"]," "); console.log(jsonstr);
其实还能够解决一个问题,JSON.stringify
在转换字符串的时候默认是不会转换function
,
所以能够传递第二个参数批改下。其实想过滤数据也是能够在replacer
办法里实现,当你返回的是对象或数组,都会被序列化。所以能够判断value
的类型是否返回就ok了
function replacer(key, value) {
if(typeof value ==="function"){
return String(value);
}
return value;
}
var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}]
var jsonstr = JSON.stringify(arr, replacer," ");
console.log(jsonstr);
发表回复