JSON の意味と基本の例
JSON は JavaScript Object Notation の略で、「ジェイソン」と読みます。2000 年代初めにダグラス・クロックフォード(Douglas Crockford)によって広められ、構文は JavaScript に由来し、RFC 8259 と ECMA-404 で標準化されています。名前に JavaScript と付いていますが、JSON は特定のプログラミング言語に依存せず、ほぼすべての言語で読み書きできます。
人物を表す小さな JSON ドキュメントの例:
{"name": "Ada Lovelace", "born": 1815, "languages": ["English", "French"], "mathematician": true, "spouse": null}
JSON のデータ型
| 型 | 例 | 備考 |
|---|---|---|
| 文字列(string) | "Hello" | ダブルクォートで囲んだテキスト。\n などのエスケープを使用可 |
| 数値(number) | 42、-3.14、6.02e23 | NaN、Infinity、16 進数、先頭の 0 は使用不可 |
| 真偽値(boolean) | true、false | 常に小文字 |
| null | null | 空または不明な値 |
| オブジェクト(object) | {"key": "value"} | 名前と値のペア。名前は文字列 |
| 配列(array) | [1, 2, 3] | 任意の型の値を順番に並べたリスト |
JSON には日付型がありません。日付は通常、"2026-05-01T10:00:00Z" のような ISO 8601 形式の文字列で表します。
JSON の書き方:構文のルール
- データは名前と値のペアで書きます:
"name": "Ada"。 - 名前(キー)と文字列は必ずダブルクォートで囲みます。シングルクォートは使えません。
- 要素はカンマで区切り、最後の要素の後にはカンマを付けません。
- 波括弧
{ }はオブジェクト、角括弧[ ]は配列を表します。 - コメントは使えません。
- 要素間のスペースや改行は無視されるため、同じデータを圧縮した形でも整形した形でも書けます。
- JSON テキストはトップレベルの値を 1 つだけ持ち、UTF-8 でエンコードします。
JSON ファイルとは?
JSON ファイルとは、拡張子が .json のプレーンテキストファイルで、1 つの JSON ドキュメントを含みます。メディアタイプは application/json で、UTF-8 で保存します。代表的な JSON ファイルには、アプリや Web サイトからエクスポートしたデータ(Google データエクスポートや SNS のダウンロードデータなど)、package.json などの設定ファイル、保存した API レスポンス、分析用のデータセットがあります。JSON ファイルはただのテキストなので、開いても安全です。コードが実行されることはありません。
JSON ファイルの開き方
| 環境 | 開き方 |
|---|---|
| Windows | ファイルを右クリック → プログラムから開く → メモ帳を選ぶか、VS Code などのコードエディタを使います。ファイルをブラウザのウィンドウにドラッグしても表示できます。 |
| Mac | テキストエディットやコードエディタで開くか、ブラウザのウィンドウにドロップします。 |
| iPhone・Android | 「ファイル」アプリからテキストビューアで開くか、オンラインの JSON ビューアで読み込みます。当サイトのビューアはスマホでも使え、ファイルは端末の外に送信されません。 |
| Web ブラウザ | Firefox には JSON ビューアが組み込まれています。どのブラウザでも、オンラインの JSON ビューアを使えばデータを折りたためるツリーで表示できます。 |
| Excel | Windows では データ → データの取得 → ファイルから → JSON からを使うか、先に JSON CSV 変換でファイルを変換します。 |
JSON と XML の違い
| JSON | XML | |
|---|---|---|
| 構文 | 波括弧、角括弧、名前と値のペア | 開始タグと終了タグ |
| データ型 | 文字列、数値、真偽値、null、オブジェクト、配列 | スキーマで型を定義しない限りテキストのみ |
| サイズ | コンパクト | 終了タグがある分大きい |
| コメント | なし | あり |
| 属性・名前空間 | なし | あり |
| 主な用途 | Web API、設定ファイル、NoSQL データベース | 文書、Office ファイル、SOAP、エンタープライズシステム |
API やアプリケーションでの JSON の使われ方
ほとんどの Web API は JSON でデータを送受信します。クライアントが Content-Type: application/json ヘッダー付きでリクエストを送り、サーバーが JSON で応答すると、プログラムはそれを JavaScript なら JSON.parse、Python なら json.loads、PHP なら json_decode でネイティブなオブジェクトに変換します。JSON は package.json や tsconfig.json などの設定ファイル、MongoDB などのドキュメントデータベース、AI モデルの構造化出力にも使われています。
よくある JSON のエラー
- 最後の要素の後の余分なカンマ:
[1, 2,] - シングルクォートや引用符のないキー:
{'a': 1}、{a: 1} // noteのようなコメント- 要素間のカンマや括弧の不足
undefined、NaN、Trueのような JavaScript や Python の値
データを JSON チェックツールに貼り付ければ問題の正確な行と列がわかり、「修復」で自動的に直すこともできます。
JSON5・JSONC・JSON Lines
- JSON5:手書きのファイル向けに制限を緩めたスーパーセットです。コメント、末尾のカンマ、シングルクォート、引用符のないキー、16 進数を使えます。標準の JSON パーサーでは読み込めません。
- JSONC:コメント付きの JSON で、VS Code の設定や
tsconfig.jsonで使われています。 - JSON Lines / NDJSON(
.jsonl):1 行に 1 つの JSON 値を書く形式で、ログや大量データのストリーミングに最適です。 - GeoJSON:地理的な地物を表す JSON で、RFC 7946 で定義されています。
よくある質問
JSON はプログラミング言語ですか?
いいえ。JSON はデータ形式です。データを記述するだけで、ロジック、関数、コメントを含めることはできません。
JSON と JavaScript のオブジェクトは同じですか?
いいえ。JSON は JavaScript のオブジェクトリテラルに似たテキストですが、より厳格です。キーと文字列にはダブルクォートが必要で、関数、undefined、コメントは使えません。JSON.parse を使うと、テキストを本物のオブジェクトに変換できます。
JSON ファイルの作り方は?
任意のテキストエディタで上記のルールに従ってデータを書き、拡張子 .json を付けて UTF-8 で保存します。使う前に JSON チェックツールで検証しておきましょう。
最終更新日: