使用JavaScript美化打印JSON对象
美化打印是指将某些数据变得更易读的过程。对于JSON来说,主要是对数据进行缩进,使其更容易阅读。使用JSON.stringify()
和适当的参数可以很容易地实现这一点。
const obj = {
id: 1182,
username: 'johnsmith',
active: true,
emails: ['johnsmith@mysite.com', 'contact@johnsmi.th'],
};
JSON.stringify(obj, null, 2);
// {
// "id": 1182,
// "username": "johnsmith",
// "active": true,
// "emails": [
// "johnsmith@mysite.com"
// "contact@johnsmi.th"
// ]
// }
如你在这个例子中所看到的,JSON.stringify()
的第三个参数是对象每个级别缩进的空格数。此外,你可以使用第二个参数来指定一个替换函数。如果你想为某些类型的值或特定的键值对提供自定义格式,这将非常有用。
const obj = {
id: 1182,
username: 'johnsmith',
active: true,
emails: ['johnsmith@mysite.com', 'contact@johnsmi.th'],
};
const replacer = (key, value) => {
if (key === 'id') return value.toString(16);
if (key === 'username') return `@${value}`;
if (key === 'emails') return `${value[0]} +${value.length - 1} more`;
return value;
};
JSON.stringify(obj, replacer, 2);
// {
// "id": "0x4e2",
// "username": "@johnsmith",
// "active": true,
// "emails": "johnsmith@mysite.com +1 more"
// }