JSON.stringify() の使い方

JSON.stringify() は、JavaScript のオブジェクトや配列を JSON 形式の文字列に変換するメソッドです。データをサーバーに送信したり、ローカルストレージに保存したりする際に使用します。

基本的な使い方

JSON.stringify() にオブジェクトを渡すと、JSON 文字列が返されます。

const user = { name: "田中", age: 25 };
const jsonString = JSON.stringify(user);

console.log(jsonString);
// '{"name":"田中","age":25}'

配列も同様に変換できます。

const numbers = [1, 2, 3, 4, 5];
console.log(JSON.stringify(numbers));
// '[1,2,3,4,5]'

整形して出力する

第3引数にインデント数を指定すると、読みやすく整形された JSON を出力できます。

const data = { name: "山田", hobbies: ["読書", "映画"] };

console.log(JSON.stringify(data, null, 2));

出力結果は以下のようになります。

{
  "name": "山田",
  "hobbies": [
    "読書",
    "映画"
  ]
}

デバッグ時やログ出力時に便利です。

変換されない値

JSON.stringify() では、一部の JavaScript の値は無視されるか、null に変換されます。

変換結果
undefined無視される(配列内では null)
関数無視される
Symbol無視される
NaNnull
Infinitynull
const obj = {
  a: undefined,
  b: function() {},
  c: Symbol('test'),
  d: NaN,
  e: Infinity
};

console.log(JSON.stringify(obj));
// '{"d":null,"e":null}'

undefined と関数、Symbol はオブジェクトのプロパティとして存在する場合、出力から完全に除外されます。配列内に undefined がある場合は null に変換されます。

const arr = [1, undefined, 3];
console.log(JSON.stringify(arr));
// '[1,null,3]'

これらの挙動を理解しておくと、意図しないデータ欠落を防ぐことができます。