jsでjsonの整形したのをhtmlのpreで整形表示する。

29/01/2021

調べたら

JSON.stringify(localStorage, null, "\t")

ってのがすぐ見つかったんだけども

手元で作業中のはなんかこんな感じでバックスラッシュが入ってしまってみずらい。

{
	"isSessionFirst": "{\"value\":false}",
	"notAgain": "{\"value\":false}",
	"lastAccessedDate": "{\"value\":\"2021-01-29T07:02:25.896Z\"}",
	"isClose": "{\"expire\":1611932340000,\"value\":true}"
}

多次元だから?かはよくわからんが
下記みたいな感じでとりあえずバックスラッシュは取れた。

JSON.stringify(localStorage, null, "\t").replace(/\\/g, "")

が、このままだと二次元目以降がただの文字列になってしまっておりpreでの改行が反映されない。

のでなんとかしたいと思いあれこれやってみて
最終的にこんな感じに変換したら一応キレイに見れた。

const values = {};
const keys = Object.keys(localStorage);
let i = keys.length;
while (i--) {
  values[keys[i]] = JSON.parse(localStorage.getItem(keys[i]));
}
const data = JSON.stringify(values, null, "\t").replace(/\\/g, "");

javascript, web

Posted by admin