JSONの整形 — どこが壊れているかまで教えます
JSONを読みやすく整え、最小化し、構造を数えます。壊れている場合は何行目の何文字目かを示します。JavaScriptのコメントや末尾のカンマを許して読む「ゆるい」読み方にも切り替えられます。
APIの応答をそのまま貼り付けると、一行に詰まった文字列が返ってきます。整形すると入れ子の深さが目で追えるようになり、どこに何が入っているかが分かります。最小化はその逆で、送信するときに無駄な空白を落とします。
貼り付けた内容はブラウザの中だけで処理されます。アクセストークンや個人情報を含む応答でも、外部に送られることはありません。
エラーの場所が分かります
JSONが読めないとき、ブラウザの標準のエラーは位置を文字数でしか教えてくれません。1,800文字目と言われても、どこを直せばよいのか分かりません。このツールは行と桁に直して示します。
よくある原因は決まっています。末尾のカンマ、シングルクォート、キーを引用符で囲っていない、コメントが混じっている、閉じ括弧が足りない。どれもJavaScriptでは書けてもJSONでは許されません。
設定ファイルやドキュメントからコピーしたJSONには、コメントや末尾のカンマが入っていることがよくあります。「ゆるい読み方」に切り替えると、それらを取り除いてから読み、正しいJSONとして整形し直します。文字列の中にある // は残すので、URLが壊れることはありません。
大きすぎる数値に注意
JSONの数値には桁の制限がありませんが、JavaScriptで読み込んだ時点で安全に扱えるのは9,007,199,254,740,991(2の53乗−1)までです。これを超える整数は、読み込んだ瞬間に近い値へ丸められます。
たとえば 12345678901234567890 は 12345678901234567000 になります。TwitterのIDやデータベースの主キーのように大きな整数を扱うAPIでは、実際に起きる問題です。このツールは、そうした数値が含まれていると警告を出します。
対処としては、送る側で数値ではなく文字列として渡すのが一般的です。受け取る側の言語によっては問題がなくても、途中にJavaScriptが挟まると壊れます。
できること
- •整形と最小化の切り替え。最小化した結果の文字数とバイト数も出ます。
- •キーをアルファベット順に並べ替え。二つの応答を見比べるときに、並び順の違いに邪魔されなくなります。
- •日本語などの非ASCII文字を \uXXXX の形に変換。古いシステムに渡すときに使います。
- •要素の数、入れ子の深さ、最大の配列の長さといった構造の統計。
よくある質問
コメント付きのJSONを読めますか?
「ゆるい読み方」に切り替えると、行コメントとブロックコメント、末尾のカンマを取り除いてから読みます。文字列の中の記号はそのまま残します。
エラーの場所が分かりません。
行と桁で表示します。その位置の少し前に、閉じ忘れた括弧や余分なカンマがあることがほとんどです。
大きなファイルでも大丈夫ですか?
数MB程度までは実用的です。それ以上はブラウザが重くなるので、コマンドラインの道具を使ってください。
貼り付けたデータは送信されますか?
されません。処理はすべてブラウザの中で行われます。
