多くの開発者が見落とす JSON.stringify の第 2 引数

2025-04-01

JSON.stringify は単なる文字列化 API ではありません。replacer で出力制御し、space で読みやすさを調整できます。

replacer 配列 = ホワイトリスト

['id','name'] を渡すと指定キーのみを出力できます。

JSON.stringify(user, ["id", "name"]);

replacer 関数

undefined を返すと除外でき、パスワード除去や日付変換に使えます。

JSON.stringify(obj, (k, v) => k === "password" ? undefined : v);

space

第 3 引数に 2 や '\t' を指定すると pretty print、未指定ならコンパクト出力です。

toJSON

オブジェクトの toJSON が優先され、Date は ISO 文字列で出力されます。