使用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"
// }