JSON.stringify
関数は、JavaScirpt のオブジェクトを JSON 形式の文字列に変換する関数である。
この JSON.stringify
において、null
と undefined
では扱いが違うので注意が必要だ。
スポンサーリンク
null の扱い
null
が設定されているキーを JSON.stringify
に流すと、JSON文字列も null として生成される。
const jsonData = {
aa: '123',
bb: null,
};
console.log(JSON.stringify(jsonData)); // `{"aa":"123","bb":null}`
undefined の扱い
undefined
が設定されているキーの場合、JSON文字列に該当のキーは生成されない。
const jsonData = {
aa: '123',
bb: undefined,
};
console.log(JSON.stringify(jsonData)); // {"aa":"123"}
JSON Schema において、undefined というデータ型が存在していないため、このような動きになる。
もし、変数の値が undefined でも、必ず JSON にキーを生成したい場合は、次のようにすればいい。
var value = undefined;
const jsonData = {
aa: '123',
bb: value || null,
};
スポンサーリンク
まとめ
JavaScirpt の JSON.stringify
関数では、null
がセットされているキーは、JSON にもキーが生成される、undefined
がセットされているキーの場合は、JSON にはキーが生成されないという話でした。
0 件のコメント:
コメントを投稿