JSONとは
この記事の結論
- JSONとは、データを文字だけで書き表すための、特定のプログラミング言語に依存しない軽量な表記形式です。
- 扱える値は文字列・数値・真偽値・null の4種類と、それらを入れる「オブジェクト」と「配列」の2種類の入れ物です。
- APIのやり取り、AIへの出力形式の指定、設定ファイルなどで広く使われます。末尾のカンマやコメントが書けない点でよくつまずきます。
じぇいそん/JavaScript Object Notation
データを文字だけで書き表すための、特定のプログラミング言語に依存しない軽量な表記形式です。
最終更新: 2026-09-26
JSONとは(意味と読み方)
JSONとは、データを文字だけで書き表すための、特定のプログラミング言語に依存しない軽量な表記形式です。JavaScript Object Notation の略で、「じぇいそん」と読みます。
仕様は IETF のRFC 8259で、2017年12月に STD 90 として公開されました。そこでは、軽量でテキストベースの、言語に依存しないデータ交換形式と定義されています。
名前のとおり JavaScript の書き方が元になっていますが、Python や Go など多くの言語で読み書きできます。人が目で読める文字のままなので、中身を確かめやすいのも広く使われている理由です。
JSONの書き方のルール
まず、1人分の情報をJSONで書いた例を示します。
{"name": "田中", "age": 28, "tags": ["AI", "Web"], "active": true, "manager": null}
波かっこ {} で囲んだ部分がオブジェクトで、「名前: 値」の組を並べます。角かっこ [] で囲んだ部分が配列で、値を順番に並べます。値に使えるのは、文字列、数値、true か false、null と、入れ物であるオブジェクトと配列です。
JavaScript の書き方との違いで、つまずきやすい点があります。JSON(MDN Web Docs)によると、次のようなルールがあります。
- 名前は必ず二重引用符
"で囲む。一重引用符は使えない - 最後の要素のあとにカンマを付けない
- コメントは書けない。
undefinedやNaNも使えない - 数値の先頭に余分な
0を付けない
RFC 8259 は、閉じた環境の外とやり取りするJSONは UTF-8 で書くことを必須としています。また、同じオブジェクトの中で名前を重ねないよう求めています。重なったときの扱いは実装によって違い、後の値だけを使うものもあれば、エラーにするものもあります。
AI開発でのJSONの使われ方
- APIの本体:APIに送る依頼も、返ってくる結果も、多くはJSONです。やり取りの際は、中身がJSONであることを
application/jsonという種類名で示します。 - AIへの出力形式の指定:モデルに「この形のJSONで返して」と指示すると、プログラムで結果を受け取りやすくなります。JSON Schemaは、JSONの構造と制約を定義するための言語で、期待する形を機械が読める形で渡すときに使われます。
- ツールへの引数:関数呼び出しで、モデルが道具に渡す引数もJSONで表されます。
- 設定ファイル:Node.js の
package.jsonのように、プロジェクトの設定をJSONで持つ道具も多くあります。
AIにJSONを返させる設計では、受け取った側で読み込みと形の検証を行う前提で組むべきだと考えます。前後に説明文が付いたり、項目が1つ欠けたりすることがあるからです。
JSONについてのよくある誤解
- 誤解:JSONはJavaScript専用 → 実際:言語に依存しない形式として定められていて、多くの言語が標準で読み書きの機能を持っています。
- 誤解:JavaScriptのオブジェクトはそのままJSONになる → 実際:一重引用符、末尾のカンマ、コメントは JavaScript では書けても、JSONでは読み込みエラーになります。
- 誤解:拡張子が .json なら中身は正しい → 実際:拡張子は名前にすぎません。読み込んでみて、エラーが出ないかで確かめます。
JSONを扱うときのコツ
JavaScript では、JSONの文字列を値に変えるのが JSON.parse()、値をJSONの文字列にするのが JSON.stringify() です。Python では標準の json モジュールが同じ役目を持ちます。
読み込みでエラーが出たら、表示される位置の前後で、末尾のカンマと引用符の種類を最初に見ます。人が手で書き足した設定ファイルでは、この2つが原因になることがよくあります。長いJSONを読むときは、JSON.stringify(値, null, 2) のように字下げを付けて出すと構造が追いやすくなります。
関連用語
関連記事
出典・参考資料
JSONについてよくある質問
Q1. JSONとは何ですか?
データを文字だけで書き表すための、特定のプログラミング言語に依存しない軽量な表記形式です。JavaScript Object Notation の略で、APIのやり取りや設定ファイルで広く使われています。
Q2. JSONにコメントは書けますか?
書けません。仕様の文法にコメントが含まれていないため、// や # を入れると読み込みでエラーになります。説明を残したい場合は、別の文書に書くか、コメントを許す別の形式を選びます。
Q3. JSONとJavaScriptのオブジェクトは何が違いますか?
JSONはデータを表す文字の形式で、JavaScriptのオブジェクトはプログラムの中の値です。JSONでは名前を必ず二重引用符で囲み、末尾のカンマや undefined を使えません。変換には JSON.parse と JSON.stringify を使います。
Q4. AIが返したJSONが読み込めません。どうすればよいですか?
前後に説明文やコードブロックの記号が付いていないか、途中で切れていないかを最初に見ます。出力の形は JSON Schema などで指定し、受け取った側でも読み込みと項目の検証を行うようにします。