JSON整形・検証
ブラウザ内処理ファイルはアップロードされませんこの処理はブラウザ内で完結します。ファイルはどこにも送信されません。
貼り付けるだけで整形・最小化・キーのソートができます。読み取れなかったときは何行目の何文字目かを示し、その行を抜き出してキャレットで指します。末尾カンマやコメントなど「JSONでは使えない書き方」も名前を出して指摘します。
入力
JSONを貼り付け
出力
ここに整形結果が出ます。
関連するツール
ツール一覧特長
- エラー位置を行と桁で表示
- JSONが読み取れなかったとき、構文を解析して行番号と文字位置を割り出し、該当行を抜き出してキャレットで示します。最小化された1行のJSONでも、エラーの付近だけを切り出して表示します。
- よくある原因を具体的に指摘
- 末尾カンマ、シングルクォート、引用符のないキー、コメント、全角スペースや全角引用符など、JSONでは使えない書き方が見つかった場合は、その内容を名前つきで表示します。
- データは送信されない
- 整形も検証もブラウザ内で完結し、貼り付けた内容はどこにも送信されません。アクセストークンや個人情報を含むAPIレスポンスにもそのまま使えます。
使い方
JSONを貼り付ける
入力欄に貼り付けます。左側に行番号が出るので、エラーの行がそのまま探せます。試すだけなら「例を入れる(わざと壊したJSON)」を押すと、よくある壊れ方の例が入ります。
動作を選ぶ
整形・最小化・キーをソートの3つから選びます。整形するときは、インデントをスペース2・スペース4・タブから選べます。結果は貼り付けた時点で出ます。
結果を受け取る
読み取れれば「OK」と出て、結果はコピーとダウンロードで持ち出せます。読み取れなければ何行目の何文字目かを示し、その行を抜き出してキャレットで指します。
JSONの仕様について
- なぜ末尾カンマやコメントが使えないの?
- JSONはJavaScriptの記法から生まれましたが、仕様は別(RFC 8259)で、JavaScript側が後から許した書き方は取り込まれていません。末尾カンマはES5でJavaScriptに入りましたがJSONには無く、コメントは最初から仕様にありません。設定ファイルで使いたい場合は、JSONCやJSON5といった別フォーマットか、`"_comment"` のような普通のキーを置く方法が使われます。
- 数値が貼り付けたときと変わることがあります
- 変わります。`JSON.parse` は数値をすべて倍精度浮動小数点数に変換するため、`1.0` は `1` になり、`12345678901234567890` のような19桁を超える整数は末尾が丸められます。IDを文字列として返すAPIが多いのはこのためです。桁の大きなIDを扱うときは、整形前後で値が同じか確認してください。
- 同じキーが2つあるとどうなる?
- 後に書かれたほうだけが残ります。これは整形の仕様ではなく `JSON.parse` の挙動で、読み込んだ時点で先のほうは失われています。「キーをソート」で消えたように見える場合も、実際はソートより前の段階で消えています。
- JSON Lines(JSONL)とは
- 1行に1つのJSONを書き、それを改行で並べた形式です。ログや大きなデータセットで広く使われていて、末尾に1行足すだけで追記でき、全体を読み込まなくても1行ずつ処理できるのが利点です。ファイル全体としてはJSONではないので、普通のJSONパーサに渡すと必ずエラーになります。ここでは各行が独立したJSONに見えたら自動で切り替えます。
よくある質問
- 貼り付けたJSONはどこかに送信されますか?
- されません。整形も検証もブラウザの中だけで行われ、貼り付けた内容がサーバーへ送られることはありません。ページを閉じれば内容は消えます。
- どれくらいの大きさまで扱えますか?
- 明確な上限は設けていませんが、端末のメモリ次第です。数MBまでは実用的に動きます。約200KBを超えると入力中の自動整形を止めて「整形する」ボタンでの実行に切り替わります。毎回のキー入力で数MBを解析し直すと、入力そのものが引っかかるためです。
- 壊れたJSONを自動で直してくれますか?
- 直しません。末尾カンマを消すだけなら安全ですが、シングルクォートをダブルクォートに置き換える処理は、文字列の中のアポストロフィまで壊すことがあります。自動では書き換えず、場所と理由の表示にとどめています。
- 行番号はブラウザのエラーメッセージから取っているのですか?
- いいえ。ブラウザ任せにすると多くの場合これが出せません。Chromeは実用的な長さのJSONだと位置の代わりに前後の抜粋を返し、Safariはそもそも位置を含みません。そこで、このページは構文を自分で追って最初に破綻した位置を割り出し、そこから行と桁を数えています。理由の文言(「この , のあとに要素がありません」など)も同じ判定によるもので、ブラウザの原文は下に参考として並べています。整形そのものはブラウザ標準の処理を使っているため、表示される結果は通常のJSONの解釈と一致します。
- キーをソートすると何が良いのですか?
- 同じ内容でもキーの順番が違うだけで差分が出る、という状況を避けられます。2つの設定ファイルを比較する前に両方をソートしておくと、本当に違う箇所だけが差分に残ります。並び順はUnicodeのコード順で、環境によって変わりません。
スポンサーリンク