JSON.stringify()的几个返回值

96
刘尐六
2016.12.29 21:50* 字数 122

工具函数JSON.stringify()在将JSON对象序列化为字符串时用到了toString,涉及到toString的相关规则,下面是firefox控制台的一些运行结果。


JSON.stringify()

JSON.stringify()可以接收一个可选参数replacer,可以是数组或函数,用来指令序列化过程中哪些属性被处理,哪些属性被排除。

var a = {
    b: 42,
    c: "42",
    d: [1,2,3]
};
console.log(JSON.stringify(a, ["b", "c"])); //"{"b":42,"c":"42"}"
console.log(JSON.stringify(a, function(k,v){
    if(k !== "c") return v;
})); //"{"b":42,"d":[1,2,3]}"

JSON.stringify()还有一个可选参数space,用来指定输出的缩进格式。

var a = {
    b: 42,
    c: "42",
    d: [1,2,3]
};
console.log(JSON.stringify(a, null, 3)); //3为每一级缩进的字符数
//{
//   "b": 42,
//   "c": "42",
//   "d": [
//      1,
//      2,
//      3
//   ]
//}
console.log(JSON.stringify(a, null, "----")); //也可为用于缩进的字符串
//{
//----"b": 42,
//----"c": "42",
//----"d": [
//--------1,
//--------2,
//--------3
//----]
//}
前端那点事
Web note ad 1