JSON.stringify で null と undefined の違い

2022年2月4日金曜日

Javascirpt

t f B! P L

enter image description here

JSON.stringify 関数は、JavaScirpt のオブジェクトを JSON 形式の文字列に変換する関数である。

この JSON.stringify において、nullundefined では扱いが違うので注意が必要だ。

スポンサーリンク

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 にはキーが生成されないという話でした。

スポンサーリンク
スポンサーリンク

このブログを検索

Profile

自分の写真
Webアプリエンジニア。 日々新しい技術を追い求めてブログでアウトプットしています。
プロフィール画像は、猫村ゆゆこ様に書いてもらいました。

仕事募集もしていたり、していなかったり。

QooQ