JSONフォーマットガイド:JSONを読む、書く、デバッグする方法
JSON(JavaScript Object Notation)はWeb上のデータ交換の万能言語です。APIを使い、設定ファイルを扱い、データをエクスポートするかどうかに関わらず、JSONを常に見かけます。このガイドではJSONの基礎と効率的に処理する方法をカバーしています。
JSONとは
JSONは軽量で人間が読みやすいデータ形式です。キーと値のペア、および順序付きリストとしてデータを表現します。簡単な例を以下に示します:
"name": "SnapToolbox",
"version": 2.0,
"free": true,
"tools": ["image-compressor", "json-formatter", "color-converter"]
}
JSONは6つのデータ型をサポートしています:文字列、数値、ブール値(true/false)、null、オブジェクト(波括弧内のキーと値のペア)、および配列(角括弧内の順序付きリスト)。
JSONをフォーマットする理由
APIやデータソースからのJSONはしばしば「ミニファイ」されています。つまり、ファイルサイズを削減するために1行に圧縮されています。機械には効率的ですが、ミニファイされたJSONは人間が読むにはほぼ不可能です:
フォーマット(「プリティープリント」とも呼ばれる)ではインデントと改行を追加して構造を明らかにします:
"user": {
"id": 1,
"name": "Alice",
"roles": ["admin", "editor"],
"active": true
}
}
一般的なJSON構文エラー
JSON構文は厳密です。1つのエラーでドキュメント全体が壊れます。最も頻繁なエラーは以下の通りです:
1. 末尾のコンマ
{ "name": "Alice", "age": 30, } ← 終わり括弧の前の余分なコンマは無効です
JSONではオブジェクトまたは配列内の最後のアイテムの後のコンマは許可されません。
2. シングルクォートではなくダブルクォート
{ 'name': 'Alice' } ← シングルクォートは有効なJSONではありません
キーと文字列値の両方でダブルクォートを使用する必要があります。
3. クォートされていないキー
{ name: "Alice" } ← キーは引用符で囲まれた文字列である必要があります
4. コメント
JSONはコメントをサポートしていません。JSONファイルに // または /* */ が表示される場合、技術的には有効なJSONではありません(一部のパーサーは拡張として受け入れます)。
実践でのJSONの使用
APIの操作
ほとんどのREST APIはJSON応答を返します。APIインテグレーションをデバッグするときは、生の応答をJSONフォーマッターに貼り付けて、コードを解析するために書く前にデータ構造を明確に見てください。
設定ファイル
多くのツールは設定にJSONを使用します:package.json(Node.js)、tsconfig.json(TypeScript)、settings.json
データのインポート/エクスポート
データベース、スプレッドシートツール、分析プラットフォームはしばしばデータをJSONとしてエクスポートします。出力をフォーマットしてスキーマを理解してから他の場所にインポートしてください。
ヒント:ドキュメントまたはバグレポートでJSONを共有するときは、常に最初にフォーマットしてください。ミニファイされたJSONはほぼ不可能にレビューでき、コラボレーションをより困難にしています。
JSONと関連形式
- JSON5:JSONのスーパーセット。コメント、末尾のコンマ、クォートされていないキーを許可します。設定ファイルで一般的ですが、APIでは広くサポートされていません。
- YAML:JSONより人間が読みやすく、DevOps(Docker Compose、Kubernetes)で広く使用されています。インデンテーションに敏感です。1つの間違ったタブがすべてを壊します。
- XML:JSONの前身。冗長で読みにくいが、一部のエンタープライズシステムとドキュメント形式で引き続き使用されています。
- CSV:表形式データ(スプレッドシート)に最適です。ネストされたデータ構造には適していません。
JSONを即座にフォーマットして検証 — 無料
SnapToolbox の JSON フォーマッターに任意のJSONを貼り付けて、プリティープリント、検証、数秒でエラーを特定してください。すべてブラウザで実行されます。
JSON フォーマッターを開くまとめ
JSONはシンプルながら強力なデータ形式で、モダン開発で常に使用します。6つのデータ型、厳密な構文ルール(ダブルクォート、末尾のコンマなし、コメントなし)を理解し、フォーマッターを使用して複雑な構造を読むことで、デバッグに数時間かけるのを節約します。プログラム的に解析する前に常にJSONを検証して、実行時エラーを回避してください。