「APIのレスポンスが1行に長々と並んで読めない」「設定ファイルのJSONを編集していてエラーになる」そんなとき、JSON整形(フォーマット)が必要になります。
この記事では、JSON整形の方法を、整形と圧縮の違い、よくあるエラーとその対処法、ブラウザで完結する整形手順まで解説します。
JSONとは
JSON(JavaScript Object Notation)は、データをテキストで表現する標準形式です。Web APIのレスポンスやアプリの設定ファイルなど、開発のあらゆる場面で使われています。形式はRFC 8259として標準化されています。
{"name":"太郎","age":30,"address":{"city":"東京","zip":"100-0001"}}
上の1行のJSONは、意味的には問題ありませんが、人間には読みづらいですね。**整形(pretty print)**すると、次のように見やすくなります。
{
"name": "太郎",
"age": 30,
"address": {
"city": "東京",
"zip": "100-0001"
}
}
ポイント:整形と圧縮(minify)は見た目を変えるだけで、データの内容は変わりません。サーバーに送る・保存するときは圧縮で軽く、読む・編集するときは整形が便利です。
JSONでよくあるエラーと対処法
JSONはルールが厳格で、小さなミスでもパースに失敗します。よくあるエラーは次のとおりです。
| エラー | 例 | 対処法 |
|---|---|---|
| 末尾カンマ | [1, 2, 3,] |
最後の要素の後ろにカンマを置かない |
| シングルクォート | {'name': '太郎'} |
JSONの文字列はダブルクォート(“)で囲む |
| コメント | // 説明 |
JSONにコメントは書けない(削除する) |
| キー名のクォート漏れ | {name: "太郎"} |
キー名もダブルクォートで囲む |
| 文字列のクォート漏れ | {"age": 30歳} |
文字列はダブルクォートで囲む |
実際の例:エラーを修正する
次のJSONはどこが間違っているでしょうか?
{
"name": "太郎",
"age": 30,
"hobbies": ["読書", "散歩",],
}
問題は2つあります。
"hobbies"の配列の末尾にカンマがある("散歩",)- オブジェクトの末尾にカンマがある(
},)
正しくは次のとおりです。
{
"name": "太郎",
"age": 30,
"hobbies": ["読書", "散歩"]
}
注意:JSONはJavaScriptのオブジェクトとは違い、シングルクォートやコメント、末尾カンマが使えません。コピー&ペーストしたコードは「正しいJSON」かどうかバリデーション(検証)で確かめましょう。
JSONを整形する手順
Tools HubのJSON整形ツールを使えば、貼り付けるだけで整形・圧縮・検証ができます。
JSONを貼り付ける
APIのレスポンスや設定ファイルのJSONを入力欄に貼り付けます。
整形・圧縮・検証から選択
見やすく整形するか、圧縮して軽くするか、構文チェックだけ行うかを選びます。
結果をコピー
整形結果を確認し、コピーやダウンロードで利用できます。エラーがあれば行番号付きで表示されます。
この記事で紹介したツール
JSON整形ツール
整形・圧縮・検証に対応。ブラウザ内で完結し、データが外部に送信されることはありません。
整形時の注意点
- 日本語の扱い:日本語を含むJSONもUTF-8でそのまま整形できます。文字化けする場合はファイルの文字コードをUTF-8に揃えましょう
- 改行コード:Windows(CRLF)とMac(LF)で改行コードが異なります。整形ツールが自動で揃える場合もあります
- 大きなJSON:数万行のJSONはブラウザのメモリに依存しますが、一般的なAPIレスポンスであれば問題なく処理できます
まとめ
- JSONはRFC 8259で標準化されたデータ形式
- 整形で読みやすく、圧縮で軽く。内容は変わらない
- 末尾カンマ・シングルクォート・コメントがエラーの主な原因
- 検証(バリデーション)でエラー箇所を特定できる
- Tools Hubの整形ツールならブラウザだけで完結し、データは外部送信されない
JSON整形が必要になったら、この記事の手順かTools HubのJSON整形ツールを活用してください。
よくある質問
JSONをきれいに整形するにはどうすればいいですか?
JSON整形ツールにJSONを貼り付けて「整形」ボタンを押すだけです。インデント付きで読みやすく表示されます。
JSONのエラーを探す方法は?
「検証」機能を使うと、エラーの場所と内容が表示されます。末尾カンマやシングルクォートが主な原因です。
圧縮と整形の違いは?
整形はインデントを付けて読みやすくし、圧縮は改行や空白を取り除いてデータを軽くします。データの内容自体は変わりません。
日本語を含むJSONは整形できますか?
はい。UTF-8の日本語はそのまま整形できます。文字化けする場合は入力データの文字コードを確認してください。