
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引数の使い方はあまり知られていないですが、知っておくと置換ができて便利です。