JavaScript JSON.stringify 有趣的部分
参考语法
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);
转载自:https://segmentfault.com/a/1190000042198970