JSONフォーマッター
適切な構造と構文ハイライトでJSONデータをインデントして美化します。ブラウザ内で完全に実行され、データはデバイスから離れません。
JSONペイロードはREST APIトラフィックの90%以上を占めており、Postmanの2023年APIの状態レポートによると、APIレスポンスが1行の読みづらい形式で返されると、フォーマッターが必要です。このツールは、ブラウザ内でネイティブのJSON.parseとJSON.stringifyエンジンを使用してJSONを解析し、インデントします。データはデバイスから離れません。APIレスポンスを定期的に処理する開発者は、ステージング環境、サードパーティのウェブフック、データベースエクスポートからミニファイされた出力に直面することが多く、このフォーマッターはそれらすべてを瞬時に処理します。
JSONをフォーマットする方法
- 生のまたはミニファイされたJSONを入力エリアに貼り付けます。
- フォーマットをクリックしてインデントと構造を適用します。
- 右側のパネルでフォーマットされた出力を確認します。
- 結果をコピーするか、
.jsonファイルとしてダウンロードします。 - エラーインジケーターを使用して、構文の問題をすぐに見つけて修正します。
JSONフォーマットの仕組み
プリティプリントの説明
プリティプリントは、データ階層を読みやすくするためにJSON文字列に一貫したインデント、改行、スペースを追加します。RFC 8259、現在のIETFのJSON標準は、トークン間のホワイトスペースの要件を定義していません - 任意の量のホワイトスペースが有効です。プリティプリントは、その柔軟性を利用して意味を変更することなく可読性を向上させます。
インデントオプション
2スペースのインデントは、ほとんどのJavaScriptツール(Prettier、ESLint)でデフォルトであり、深くネストされた構造に対してコンパクトな出力を生成します。4スペースのインデントは、Pythonのjson.dumps(data, indent=4)のデフォルト出力に一致します。このツールは、チームの慣習に合わせて両方のスタイルをサポートしています。
例
入力(ミニファイ)
{"user":{"id":1,"name":"Alice","roles":["admin","editor"],"active":true}}
出力(2スペースインデント)
{
"user": {
"id": 1,
"name": "Alice",
"roles": [
"admin",
"editor"
],
"active": true
}
}
フォーマッターが時間を節約する時
- APIデバッグ - 生のAPIレスポンスを貼り付けて、ネストされたオブジェクトや配列を一目で確認
- 設定ファイル - バージョン管理にコミットする前に、読みやすい
package.json、tsconfig.json、またはアプリ設定を確認 - データベースエクスポート - MongoDB、PostgreSQLのJSONカラム、またはElasticsearchのレスポンスはしばしばミニファイされた状態で届く
- コードレビュー - gitで差分を取る前に、ミニファイされたサードパーティのJSONを美化
一般的な間違い
- トレーリングカンマ -
{"a": 1,}は有効なJavaScriptですが、RFC 8259に従った有効なJSONではありません。最後のカンマを削除してください。 - シングルクオートの文字列 -
{'key': 'value'}は無効です。JSONはダブルクオートを必要とします。 - JavaScriptコメント -
// commentや/* comment */にはJSON構文の同等物がありません。最初にそれらを削除してください。 - エスケープされていない制御文字 - 文字列値内のタブ文字や改行は、
やとしてエスケープする必要があります。
JSONバリデーターで検証した後、このフォーマッターを使用して出力をインデントします。フォーマットされたJSONを本番ペイロード用に圧縮するには、JSONミニファイアがそのプロセスを逆転させます。HTTPヘッダーやクエリ文字列内にJSONをエンコードするには、Base64エンコーダーがバイナリ安全な輸送を処理します。
よくある質問
このツールを使用すると、私のJSONデータは安全ですか?
はい。すべてのフォーマットはブラウザ内でJavaScriptのネイティブJSON.parseとJSON.stringifyを使用して行われます。あなたのJSONはサーバーに送信されることはなく、フォーマット中にブラウザのネットワークタブを確認すると、外部リクエストはゼロであることがわかります。APIキー、トークン、個人データはプライベートのままです。
JSONプリティプリントとは何ですか?
プリティプリントは、JSON文字列に一貫したインデント、改行、スペースを追加します。フォーマットされた結果は元のものと意味的に同じです - トークン間のホワイトスペースだけが変わり、これはRFC 8259で明示的に許可されています。ミニファイドJSONとそのフォーマットされたバージョンは、正確に同じデータ構造を解析します。
フォーマットを試みた後、なぜ私のJSONにエラーが表示されるのですか?
フォーマッターは解析中にJSONを検証します。一般的な問題:配列やオブジェクトの最後のアイテムの後のトレーリングカンマ、ダブルクオートの代わりにシングルクオートの文字列、文字列内のエスケープされていないバックスラッシュ、コメントやundefinedのようなJavaScript特有の構文 - これらはすべてRFC 8259に従って無効です。正確な行と列のエラーレポートにはJSONバリデーターを使用してください。
非常に大きなJSONファイルをフォーマットできますか?
はい。このツールはブラウザのネイティブJavaScriptエンジンを使用しているため、かなり大きなファイルを迅速に処理します。50MBを超えるファイルの場合、パフォーマンスはデバイスの利用可能なメモリとCPUに依存します。非常に大きなペイロードを解析中にブラウザが一時的に停止することがあります - これは予期される動作であり、バグではありません。
フォーマットは私のJSONデータを変更しますか?
いいえ。フォーマットはホワイトスペース - トークン間のインデントと改行のみを追加します。キー、値、ネスト、要素の順序は元のものとバイト単位で同一です。フォーマットされた出力をミニファイして、元のミニファイされた入力と比較することで確認できます。