JSON.stringify

  • 作者: 小华坚决上王者
  • 建议阅读时间: 2 min
  • 掘金地址

JSON.stringify()是个经常使用的前端方法,这个函数可以传入三个参数,这里我安利下第三个参数,专门用来美化输出,先看下语法:

1
JSON.stringify(value[, replacer [, space]])

下面我列举了三个常用的例子,直接上代码

普通用法

1
2
3
4
5
6
7
8
let obj = {
a: 'foo',
b: 'bar',
}

console.log(JSON.stringify(obj))

// "{"a":"foo","b":"bar"}"

space传入数字

1
2
3
4
5
6
7
8
9
10
11
12
13
let obj = {
a: 'foo',
b: 'bar',
}

console.log(JSON.stringify(obj, null, 2))

/*
{
"a": "foo",
"b": "bar"
}
*/

space传入字符串

1
2
3
4
5
6
7
8
9
10
11
12
13
let obj = {
a: 'foo',
b: 'bar',
}

console.log(JSON.stringify(obj, null, '--'))

/*
{
--"a": "foo",
--"b": "bar"
}
*/

一个典型的应用场景

在手机上或者没有控制台的时候,想输出某个对象,这时候会用到alert:

1
alert(obj);

效果却是这样的:


此时的你:

后来,你使用了JSON.stringify的第三个参数:

1
alert(JSON.stringify(obj, null, 2));

结果自然就很通畅了:

怎么样,是不是很爽,space传入数字应该可以满足大多数需求,我也推荐大家这么使用。