JSONをブラウザ上でフォーマット・検証・圧縮する
JSONはJavaScript Object Notationの略で、現代のWebにおける共通言語です。呼び出すREST APIのほぼすべてがJSONを返し、多くの設定ファイルがJSONに依存しており、サービスとフロントエンドの間を行き交うデータの大部分がJSONとしてシリアライズされています。これだけ普及している理由は明快です。フォーマットがシンプルで言語に依存せず、プログラマーが日頃から扱っているオブジェクト・配列・文字列・数値にきれいに対応しているからです。しかしその簡潔さには欠点もあります。サーバーから数百個のネストされたキーを詰め込んだ1行のレスポンスが返ってきた瞬間、JSONの魅力だった構造が文字の壁に埋もれてしまいます。
speedor.net JSON フォーマッターは、その構造を取り戻すためのツールです。データを貼り付けるだけで、ブラウザのタブ内でJSONを即座に整形・検証・圧縮します。サーバーへのアップロードは一切ありません。トークン・顧客情報・内部識別子を含むAPIレスポンスを確認する際も、安心して利用できます。

インデントがJSONを読みやすくする理由
フォーマット(ビューティファイ、プリティプリントとも呼ばれる)は、コンパクトまたは圧縮されたJSONに改行と一貫したインデントを追加します。情報は同一で、変わるのは空白だけです。それでもその空白があることで、ネストの深さを視覚で追えるようになり、あるオブジェクトがどこで終わり次が始まるかを把握でき、3要素の配列と300要素の配列を区別できます。深夜2時にインテグレーションをデバッグしているとき、読みやすいツリーと途切れのない文字列の差は、バグを見つけられるかどうかの差に直結します。
優れたフォーマッターはキーの順序と正確な値を保持するため、読んでいるものはAPIが実際に送ったデータそのものです。再レンダリングされた近似値ではなく、同じバイト列を人間がマシンと同じくらい簡単に解析できるように並べたものを見ています。
バリデーションと誰もが引っかかるエラー
整形はタスクの半分に過ぎません。JSONをフォーマットする前に、まず有効なJSONである必要があります。フォーマットの厳格なルールは、多くの人が思う以上に多くのミスを検出します。バリデーターは入力を解析し、どこで壊れているかを正確に、通常は行と位置を示して教えてくれるので、手探りで探す必要がありません。以下の少数のミスが、壊れたJSONの圧倒的多数を占めています。
- 末尾のカンマ。 JSONはオブジェクトや配列の最後の要素の後にカンマを禁止しています。JavaScriptではこれが許容されるため、開発者は習慣的に貼り付けてしまいます。
- シングルクォート。 文字列とキーはダブルクォートを使用する必要があります。ソースコードからオブジェクトリテラルをそのままコピーするとシングルクォートが残ることが多く、パーサーが拒否します。
- クォートなしのキー。 すべてのキーはクォートされた文字列でなければなりません。JavaScriptオブジェクトでは問題ないベアキーも、JSONでは無効です。
- 括弧の欠落または不一致。 閉じられていない
{や[、または余分な閉じ括弧はドキュメント全体を破壊します。フォーマッターはバランスが崩れている箇所をハイライトします。 - コメントとundefined値。 JSONにはコメントも
undefinedもありません。許可されているのはnull・ブール値・数値・文字列・配列・オブジェクトのみです。
疑わしいペイロードをバリデーターに通すと、デプロイの失敗が連鎖する前に数秒で問題が表面化します。

ペイロードを縮小するミニファイ
逆の操作も同様に有用です。ミニファイはオプションの空白をすべて除去し、JSONを最も小さい1行形式に圧縮します。データをネットワーク経由で送信したり設定値に埋め込んだりする場合に、まさに必要な処理です。ペイロードが小さくなるほど帯域幅の消費が減り、転送が速くなります。よくあるワークフローは、レスポンスを調べている間は整形して表示し、問題を修正し、コミットや環境変数への貼り付けの前にミニファイする、というものです。1つのツールでそのサイクルの両端を処理できます。
ローカル処理で機密データを保護
すべての処理がブラウザのJavaScript上で実行されるため、貼り付けたJSONはあなたのマシンの外に出ることはありません。これは宣伝上の話ではなく、実用的な保証です。ベアラートークンを含む生のAPIレスポンス、ユーザーデータのエクスポート、内部サービスの設定ファイルなどを、サードパーティのサーバーがログに記録しているかもしれないという心配なしに貼り付けられます。タブを閉じればデータは消えます。データ取り扱いのルールに従って業務をしている方にとって、ローカル処理はリスクのカテゴリをまるごと取り除いてくれます。
JSONが整理できたら、さらに深く掘り下げてみましょう。残りのデベロッパーツールを探索したり、JSON to YAMLで構造を変換したり、Base64で埋め込まれた値をデコードしたりできます。いずれのツールも同じ原則に従っています。高速・無料・ブラウザ内で完結します。
よくある質問
JSONはサーバーにアップロードされますか?
いいえ。フォーマッターはJavaScriptを使用してブラウザ内で完全に動作します。データはどこにも送信されないため、機密性の高いAPIレスポンスや設定ファイルを安全に貼り付けることができます。
フォーマットとミニファイの違いは何ですか?
フォーマットはJSONを読みやすくするためにインデントと改行を追加します。ミニファイはペイロードを可能な限り小さくするためにオプションの空白をすべて削除します。データ自体はどちらの形式でも同一です。
なぜJSONのバリデーションに失敗するのですか?
最も一般的な原因は、末尾のカンマ、ダブルクォートの代わりのシングルクォート、クォートなしのキー、コメント、括弧の欠落または不一致です。バリデーターは問題が発生している行を指摘します。
JSONでシングルクォートを使用できますか?
いいえ。JSON仕様ではすべての文字列とキーにダブルクォートが必要です。シングルクォートはJavaScriptでは有効ですがJSONでは無効であり、これがエラーの頻繁な原因となっています。
フォーマット時にデータは変更されますか?
いいえ。フォーマットは空白を追加または削除するだけです。キー・値・その順序は元のまま保持されるため、読んでいるものはAPIが実際に送ったものと同じです。
サイズ制限はありますか?
処理はローカルで行われるため、実質的な制限はサーバーの上限ではなくデバイスとブラウザに依存します。一般的なAPIレスポンスや設定ファイルは即座にフォーマットされます。
