日本語
JSON整形ツールの使い方
このJSON整形ツールは、貼り付けた瞬間にJSONを検証して見やすく整形します。APIのレスポンスを読む、設定ファイルを直す、テストデータを整えるといった作業が、何もインストールせずにできます。
- 入力ボックスにJSONを貼り付けるか、サンプルを読み込むで試してみます。
- インデントを選びます:スペース2つ(JavaScriptで一般的)、スペース4つ(PythonやJavaで一般的)、またはタブ。
- 読みやすくするなら整形、できるだけ短くするなら圧縮を選びます。
- コピーを押すか、.jsonをダウンロードでファイルとして保存します。
JSONが壊れている場合は、出力欄の代わりにエラーメッセージが表示され、行番号と列番号、そして正確な位置にキャレット(^)を付けた抜粋が示されます。
よくあるJSONのエラーと直し方
JSONはJavaScriptに似ていますが、ルールはずっと厳格です。「無効なJSON」エラーの多くは次のミスが原因です。
| 無効 | 有効 | 理由 |
|---|---|---|
| {'name': 'Ana'} | {"name": "Ana"} | 文字列とキーにはダブルクォートが必要です。 |
| {name: "Ana"} | {"name": "Ana"} | キーは引用符で囲む必要があります。 |
| [1, 2, 3,] | [1, 2, 3] | 最後の要素のあとにカンマは置けません。 |
| {"a": 1 "b": 2} | {"a": 1, "b": 2} | 要素はカンマで区切ります。 |
| {"n": 007} | {"n": 7} | 数値の先頭に0は付けられません。 |
| {"ok": True} | {"ok": true} | true、false、null は小文字です。 |
| // comment | (削除) | コメントはJSONの一部ではありません。 |
エラーがある行を指していても、本当の原因はその直前にあることがよくあります。たとえばカンマの抜けは、パーサーが次の値に到達したときに初めて検出されます。
整形の仕組み
このツールはJSONの標準規格(RFC 8259)に従って、テキストを1文字ずつ読み進めます。読みながら整形済みの出力を組み立て、最初にルール違反があった箇所で止まります。値をJavaScriptの数値に変換しないため、64ビットIDのような非常に大きな数や長い小数も書いたとおりに保持され、\u00e9 のようなエスケープシーケンスもそのまま残ります。
出力の下の数値は、結果のサイズ、すべてのオブジェクトのキー数、最も深い入れ子の階層を示します。深い入れ子は機械にとっては問題ありませんが、構造が必要以上に複雑になっているサインかもしれません。
整形と圧縮、どちらを使う?
- 整形は人がデータを読むときに:デバッグ、コードレビュー、ドキュメント、バージョン管理している設定ファイル。
- 圧縮は機械だけが読むときに:リクエストの本文、データベースや環境変数に保存する値、ブラウザに配信するファイル。
同じオブジェクトを両方のスタイルで表すと次のようになります。
{
"id": 7,
"tags": [
"a",
"b"
]
}
Webではgzipやbrotliの圧縮がすでに空白をよく縮めるため、圧縮(minify)が効くのは主に保存容量の制限やリクエストサイズで、ダウンロード速度への影響は小さめです。
プライバシーと制限
JSONはブラウザのタブ内だけで処理され、アップロードや記録は一切ありません。数メガバイトのファイルも問題なく扱えますが、非常に大きな入力は遅いスマホでは少し時間がかかります。それでも、必要のないときは本物のパスワードや秘密鍵を、このサイトを含むどのWebサイトにも貼り付けないようにしましょう。
よくある質問
JSONをオンラインで整形するには?
入力欄にJSONを貼り付けてください。すぐにチェックされ、スペース2つで整形されます。好みでスペース4つやタブに切り替え、結果をコピーするか .json ファイルとしてダウンロードできます。
JSONが無効になるのはなぜですか?
よくある原因は、ダブルクォートではなくシングルクォートを使っている、最後の要素の後にカンマがある、要素間のカンマが抜けている、コメントがある、キーがクォートで囲まれていない、などです。エラーメッセージに最初の問題の行と列が表示されます。
JSONの圧縮(minify)とは?
文字列の中以外にある空白と改行をすべて取り除くことです。データはまったく同じままファイルが小さくなるので、API、設定値、保存に便利です。
JSONではコメントや末尾のカンマは使えますか?
使えません。標準のJSON(RFC 8259)はどちらも認めていません。JSONCやJSON5を受け付けるツールもありますが、ブラウザや多くのAPIが使う厳密なパーサーでは拒否されます。
JSONはサーバーに送信されますか?
いいえ。解析と整形はすべてJavaScriptでブラウザ内で行われます。データが端末の外に出ることはないのでAPIキーや顧客データも安全ですが、秘密情報の共有はできるだけ避けてください。