JavaScriptのJSON.stringify(obj, null, 2)で整形して出力できる

JSON.stringifyとは

JSON.stringify()メソッドはJavaScriptのオブジェクトや値をJSON文字列に変換します。

例えば以下のような { foo: 1, bar: 2} のオブジェクトで使うと {"foo":1,"bar":2} の文字列に変換される。

const obj = { foo: 1, bar: 2}
console.log(JSON.stringify(obj))
// {"foo":1,"bar":2}

JSON.stringify(obj, null, 2)で整形して出力

JSON.stringifyの第2引数にnull、第3引数に半角スペースのインデント数を指定すればJSONを整形して文字列で出力できる。

const obj = { foo: 1, bar: 2}
console.log(JSON.stringify(obj, null, 2))
// {
//   "foo": 1,
//   "bar": 2
// }

第2引数は置き換え関数や配列を指定するためのものです。

JSON.stringifyの第2引数の使い方

例えば「bar: 2」を「bar: 777」に置き換えたい場合は以下のようにします。

const obj = { foo: 1, bar: 2}
const replacer = (key, value) => {
  if (key === 'bar') {
    return 777
  }
  return value
}
const json = JSON.stringify(obj, replacer, 2)
console.log(json)
// {
//   "foo": 1,
//   "bar": 777
// }

JSON.stringifyの第2引数の使い方はあまり知られていないですが、知っておくと置換ができて便利です。