JSON整形・圧縮

APIのレスポンスやログに出てくる1行のJSONを、インデント付きの見やすい形に整形します。逆に改行や空白を取り除いて圧縮することもできます。形式が正しくない場合はエラーの位置を表示します。

JSONとは

JSON(JavaScript Object Notation)は、データを {"キー": 値} の形で表すテキスト形式です。読み書きしやすく、ほとんどのプログラミング言語で扱えるため、Web API のやり取りや設定ファイル(package.json など)で標準的に使われています。

型例
文字列"山田"(必ずダブルクォート)
数値30、3.14、-1e10
真偽値true、false
nullnull
配列[1, 2, 3]
オブジェクト{"a": 1}

よくある構文エラー

原因誤り正しい書き方
末尾のカンマ{"a": 1,}{"a": 1}
シングルクォート{'a': 1}{"a": 1}
キーのクォート忘れ{a: 1}{"a": 1}
コメント// メモJSON ではコメントは書けない
undefined / NaN{"a": undefined}{"a": null}

コマンドラインで整形する

ターミナルでは jq コマンドや Python を使っても整形できます。

方法コマンド
jqcat data.json | jq .
Pythonpython3 -m json.tool data.json
Node.jsJSON.stringify(obj, null, 2)

よくある質問

大きな数値の桁が変わってしまいます

JavaScript の数値は 253(約9千兆)を超える整数を正確に扱えません。Twitter(X)の ID のような大きな整数は、整形すると末尾の桁が変わる場合があります。正確さが必要な値は文字列として扱ってください。

「キーを並べ替える」は何に使いますか?

オブジェクトのキーをアルファベット順に並べます。2つのJSONを比較(diff)するときに、キーの順番の違いを無視して中身の違いだけを確認できます。

日本語が あ のように表示されるJSONを読みたい

整形すると \uXXXX 形式の文字は日本語に戻って表示されます。文字列だけを変換したい場合は Unicodeエスケープ変換 も使えます。

APIのレスポンスを貼り付けても大丈夫ですか?

入力したJSONはブラウザ内で処理され、サーバーには送信されません。ただし、トークンや個人情報を含むデータは取り扱いに注意してください。