Skip to content

Instantly share code, notes, and snippets.

@youkinjoh
youkinjoh / extendJSON.md
Last active Mar 9, 2022
JSONが対応していない値(NaN/Infinity/Date等)をJSONに保存する方法
View extendJSON.md

JSONが対応していない値をJSONに保存する方法

JSONは NaN / Infinity / -InfinityDate 型等に対応していない。 しかし、JavaScriptのJSONは、これらを解消する仕組みを持っている。 それは JSON.parse の第二引数の reviverJSON.stringify の第二引数の replacer だ。

注意が必要なのは、 Date 型は toJSON メソッドを持つため replacer に値が渡る前に文字列になってしまうこと。 これに対応するには toJSON メソッドを一時退避してしまえば良い。

これらを上手く駆使すれば、JSONに型を保ったまま値を保存し復元することができる。