JSON整形・検証

JSONを貼り付けると、すぐに正しいかを調べて見やすく整えます。誤りは何行目の何文字目かと、よくある原因を示します。

できること

  • 貼り付けた瞬間に検証。誤りは行・列と、その行に印を付けて示し、末尾のカンマ・シングルクォート・コメントなどよくある原因を説明します
  • スペース2・スペース4・タブでの整形と、1行への圧縮(minify)。キーを名前順に並べ替えることもできます
  • よくある誤り(コメント・末尾のカンマ・シングルクォート・囲んでいないキー・NaNなど)を自動で直し、直した場所を一覧で確かめてから反映できます
  • 2^53を超える大きな整数も、書かれた桁のまま出力。JSON.parseで別の値に変わってしまう数・安全な整数の上限を超える数と、重複したキーは注意として知らせます
  • 開閉できるツリー表示。キーを押すと$.items[3].nameのようなJSONPathと、JavaScriptの書き方のパスをコピーできます
  • \u3042のようなエスケープを文字に戻す・日本語を\uで書く切り替え。ファイルを開く・ダウンロードもできます

こんなときに

APIのレスポンスを読む

1行に詰まったJSONを整形し、ツリーで必要な値の場所とパスを確かめる。

設定ファイルのエラーを探す

「Unexpected token」としか出ないエラーの位置と原因を、行と列で特定する。

差分を見やすくする

キーを名前順に並べ替えて整形し、2つのJSONを比べやすくする。

大きなIDの確認

Twitter(X)のIDのような2^53を超える数が、途中で丸められていないか確かめる。

プライバシー

入力したJSONと開いたファイルは、ブラウザの中だけで処理し、どこにも送信しません。入力した内容は保存しません(字下げなどの設定だけを、次に開いたときのためにこの端末に残します)。

よくある質問

JSONとJavaScriptのオブジェクトは何が違いますか?

JSONはJavaScriptのオブジェクトの書き方をもとにしたデータの形式ですが、決まりがより厳しくなっています。キーと文字列は必ずダブルクォートで囲み、使える値は文字列・数・true・false・null・オブジェクト・配列だけです。undefined・NaN・関数・日付は書けません。

なぜコメントや末尾のカンマが使えないのですか?

JSONはプログラム同士でデータを受け渡すための形式で、どの言語でも同じように読めるよう、文法をできるだけ小さくしているためです。コメントを書きたい設定ファイルにはJSONCやJSON5が使われます。「よくある誤りを自動で直す」を使うと、コメントや末尾のカンマを消したJSONにできます。

大きな数(2^53を超える整数)はどうなりますか?

JavaScriptの数は2^53 − 1(9007199254740991)を超える整数を正確に表せず、JSON.parseで読むと9007199254740993が9007199254740992に変わります。このツールはJSON.parseを使わずに読むので、書かれた桁のまま整形し、別の値に変わる数には注意を出します。9007199254740994のように上限を超えてもちょうど表せる数もありますが、計算すると誤差が出ることがあるので、その旨も知らせます。プログラムで扱うときは、文字列にするかBigIntを使うと安全です。

エラーの行と列はどう数えていますか?

1行目・1列目から数えます。列は文字(コードポイント)の数で数えます。日本語は1文字ですが、組み合わせた絵文字(家族の絵文字や国旗など)は複数に数えることがあり、VS Codeなどのエディターの列番号とずれる場合があります。JSON.parseのエラー文はブラウザごとに違うため、このツールは自分で文法を調べて、誤りが始まる位置を示します。

重複したキーは問題ですか?

JSONの決まりでは禁止されていませんが、多くのプログラムは後に書かれた値だけを使い、前の値は黙って消えます。意図しない上書きのことが多いので、このツールは注意として知らせます(出力ではどちらも残します)。

入力したJSONはどこかに送られますか?

送られません。検証・整形・ツリー表示はすべてお使いのブラウザの中で行い、ファイルもアップロードしません。社外秘のAPIレスポンスや設定ファイルも安心して貼り付けられます。

関連ツール

ファイルをこの欄にドロップしても開けます。 JSONはこのブラウザの中だけで処理し、どこにも送信しません。ファイルも読み込むだけで、アップロードはしません。

JSONを入れると、すぐに検証して整形します。

整形したJSON

字下げ

ツリー表示

キーを押すと、その場所のパスをコピーします。

選んだ場所のパス

JSONPath $
JavaScript data

正しいJSONを入れると、ここに木の形で表示します。