JSON.stringify(object, replacer, space)
stringify 会深度等进行字串化
JSON.stringify({}); // '{}'
JSON.stringify(true); // 'true'
JSON.stringify("foo"); // '"foo"'
JSON.stringify([1, "false", false]); // '[1,"false",false]'
JSON.stringify({ x: 5 }); // '{"x":5}'
JSON.stringify([new Number(1), new String("false"), new Boolean(false)]);
// '[1,"false",false]'
JSON.stringify({x: undefined, y: Object, z: Symbol("")});
// '{}'
JSON.stringify([undefined, Object, Symbol("")]);
// '[null,null,null]'
对于包装类会进行转为原始值
function,不可枚举的属性,undefined,Object,Symbol 会被忽略
在 object {}
对象中会跳过,在 array []
会以 null 替代
replacer
数组
- 只会对数组中的元素对应在 Object 的 key 进行字串化,其它都 会被忽略
回调函数 function
function(key, value) 按照返回 value 进行字串化,如果是返回 undefined 会被忽略
function replacer(key, value) {
if (typeof value === "string") {
return undefined;
}
return value;
}
var foo = {foundation: "Mozilla", model: "box", week: 45, transport: "car", month: 7};
var jsonString = JSON.stringify(foo, replacer);
space
数字
- 设定每级别缩进的空格个数(最多 10 个)
字符串
- 以这字符串作为缩进的字符代替默认的每级别的缩进空格