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 | 無視される |
| NaN | null |
| Infinity | null |
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]'これらの挙動を理解しておくと、意図しないデータ欠落を防ぐことができます。