JSON.stringify() での undefined と null の取り扱われ方の違い
やったこと
let from_obj = {aaa : 'rockman', bbb : undefined, ccc : 'gutsman'}; let to_obj = {}; to_obj = JSON.stringify(from_obj); to_obj = JSON.parse(from_obj);
期待結果
まったく同じjsonが復帰する
実際
bbb の結果は null になっていた
対応
let from_obj = {aaa : 'rockman', bbb : undefined, ccc : 'gutsman'}; let to_obj = {}; to_obj = JSON.stringify( from_obj, function(k, v) { if (v === undefined) { return 'undefined'; } return v;} ); to_obj = JSON.parse(from_obj);