JSの忘れない

C++の忘れないって記事を書いて一番自分がよくググるのでそれのjs版も作っておくか。。という事で。oFの時ほど見ない気もするのだけど。

jsonのコピー

jsの仕様では普通にコピーするとarrayとかobjectが参照渡しになるそうで(1時間ハマった)
以下一度stringにエンコ、デコードする。ただしundefindとか入るとNG。

obj = {hoge:"aaa"};
this.json = obj; //参照渡し
this.json = JSON.parse(JSON.stringify(obj)); //deep copy

json fileの保存

オブジェクトをjsonファイルに保存。れがしー。

const a = document.createElement("a");
a.href = URL.createObjectURL(
  new Blob([JSON.stringify(this.json)], {
    type: "application/json",
  })
);
a.download = "test.json";
a.click();

json fileの保存

File System Access APIを使ってオブジェクトをjsonファイルに保存。
こっちの方が保存ダイアログとか出せるし色々便利。

忘れない。。

you