JSON.stringify()的第一个参数为要转化的数据,这也是我们常用的方法,其实JSON.stringify一共可以传入三个参数,第一个参数就是我们正常转化的数据
示例:
let obj = {
name: "坤坤",
age: 2.5,
hairStyle: "中分",
};
console.log(JSON.stringify(obj));
{"name":"坤坤","age":2.5,"hairStyle":"中分"}
而第二个参数,我们可以传入一个数组,在我们第二个参数传入为数组时,JSON.stringify会根据我们所传入的key,来生成新的字符串对象,如果传入一个空数组,则返回空对象
示例:
console.log(JSON.stringify(obj, ["name", "age"]));
{"name":"坤坤","age":2.5}
第二个参数也可以是一个回调函数,当我们传入一个回调函数时,会接受到两个参数(key,value),分别对应对象的key和val, 我们在设置key = 'name' 时返回undefined 此时返回字符串对象就缺失了name属性
示例:
let obj = {
name: "坤坤",
age: 2.5,
hairStyle: "中分",
};
console.log(
JSON.stringify(obj, (key, value) => {
if (key === "name") {
return undefined;
}
return value;
})
);
{"age":2.5,"hairStyle":"中分"}
在我们正常编写JSON.stringify时,代码会进行格式化,不便查看,此时我们可以使用JSON.stringify的第三个参数来调整输出代码的缩进, 此时代码变成了我们熟识的缩进式,方便我们查看代码,而所传的数值,则就是缩进的行数
示例:
let obj = {
name: "坤坤",
age: 2.5,
hairStyle: "中分",
};
console.log(JSON.stringify(obj, null, 2));
{
"name": "坤坤",
"age": 2.5,
"hairStyle": "中分"
}