JSON整形の読み方ガイド|構造の見方とよくあるエラーの直し方
APIのレスポンスや設定ファイルを開いたとき、改行もインデントもない1行の文字列がずらりと並んでいて、どこに何が書いてあるのか分からない——そんな経験はありませんか。JSONは人間にも機械にも読める形式として設計されていますが、圧縮された状態では人間には読みにくくなります。このガイドでは、JSONの基本構造、整形すると何が変わるのか、そして「エラーで読み込めない」ときの典型的な原因と直し方を解説します。
JSONは2つの構造だけ覚えれば読める
JSONのデータは、大きく分けて「オブジェクト」と「配列」の組み合わせでできています。オブジェクトは { } で囲み、「キー」と「値」をコロンでつないだペアをカンマで区切ります。配列は [ ] で囲み、値をカンマで並べます。値には文字列、数値、真偽値(true / false)、null、さらにオブジェクトや配列自体も入れることができます。
{
"name": "山田",
"age": 32,
"tags": ["買い物", "旅行"],
"address": {
"city": "横浜市",
"zip": "220-0001"
}
}
この例では、外側がオブジェクト、中に配列(tags)と、もう1つのオブジェクト(address)が入れ子になっています。実際のデータも、この入れ子の深さが変わるだけで、基本は同じです。整形ツールでインデントを付けると、入れ子の深さが目で追えるようになり、「どの値がどのキーの中にあるか」が一目で分かります。
整形しても意味は変わらない
JSON整形は、空白・改行・インデントを付け直す作業で、データの中身自体は変更しません。逆に「圧縮(minify)」は空白や改行を取り除いて1行にします。通信量を減らしたいときは圧縮、人が確認・編集したいときは整形、と使い分けます。整形したからといってプログラムの動作が変わることはありません。ただし、整形ツールに貼り付けた時点でエラーが表示される場合は、そもそものJSON自体に文法ミスがあるサインです。
よくあるエラーと直し方
| ミスの例 | 何が問題か | 直し方 |
|---|---|---|
| 最後の要素の後にカンマがある | JSONでは末尾カンマは許可されない | 末尾のカンマを削除する |
| キーを 'single' で囲んでいる | 文字列はダブルクォートのみ | "double" に書き換える |
| キーをクォートで囲んでいない | キーは必ず文字列として書く必要がある | "name": のように囲む |
| コメントを書いている | JSONにはコメント記法がない | コメント行を削除する。メモは別ファイルに残す |
| 数値の先頭に不要な0がある | 012 のような表記は不正 | 12 に直す。小数は 0.12 と書く |
| 日本語の読点や句読点が混ざっている | 区切りは半角カンマと半角コロンのみ | 全角の「、」「:」を半角に置換する |
エラーの場所を探すコツは、整形ツールが示す行番号や位置を手がかりに、その直前を疑うことです。多くの場合、カッコの閉じ忘れやカンマの過不足が、エラー表示位置の少し手前で起きています。大きなファイルでは、まず外側のオブジェクトだけを抜き出して正しいか確認し、少しずつ範囲を広げると原因を切り分けやすくなります。
CSVとの変換で気をつけること
表形式のデータはCSV、階層のあるデータはJSONが向いています。配列の中に同じ形のオブジェクトが並んでいるJSONはCSVに変換しやすいのですが、入れ子が深いJSONや、要素ごとにキーが違うJSONは、そのままでは表になりません。変換するときは「1行が何を表すのか」を先に決め、入れ子の値は列を分けて展開するか、文字列として残すかを統一してください。逆にCSVからJSONを作る場合は、1行目がキーになるのが一般的です。見出し行の重複や空欄があるとキーが欠けるため、変換前に見出しを整えておくことが大切です。
よくある質問
Q. 整形ツールに業務データを貼っても大丈夫ですか?
A. ツールの設計によります。本体サイトのJSON整形ツールはブラウザ内で処理し、入力内容をサーバーへ送信しない設計です。利用するツールがどこで処理しているか、プライバシーポリシーで確認してから使うと安心です。個人情報やAPIキーを含むデータは、どのツールでも扱いに注意してください。
Q. インデントはスペース2つと4つのどちらが良いですか?
A. 文法上の正解はありません。チームやプロジェクトの既存ファイルに合わせるのが原則です。階層が深いデータは2スペースのほうが横に広がらず読みやすくなります。
Q. JSONの数値に桁数の大きなIDを入れてもいいですか?
A. 環境によっては数値として読み込む際に精度が落ち、末尾の桁が変わってしまうことがあります。IDのように計算しない値は、クォートで囲んで文字列として扱うほうが安全です。
まとめ
JSONはオブジェクトと配列の入れ子だけを押さえれば読める形式です。読みにくいときはまず整形して構造を目で追えるようにし、エラーが出るときはカンマ・クォート・カッコの対応を直前から疑ってください。整形と検証を同時に行えるツールを使うと、手作業での見落としを大きく減らせます。