【じぇいそん】

JSON とは?

最終更新:
💡 決まった記法でデータを表す、言語に依存しないテキスト形式

JavaScriptの記法に由来する、言語に依存しないテキスト形式のデータ交換フォーマット。オブジェクトや配列に加え、文字列、数値、真偽値、nullを表せる。文字列の引用符や区切りなど、決められた文法で書く。

📌 このページのポイント
JSONでデータを表す クライアント サーバー データを交換 { "name": "太郎", "age": 25, "skills": ["Python", "JavaScript"] } 名前は文字列、値には配列なども使える 全体が42やtrueだけでもJSON
クライアントからサーバーへJSONオブジェクトを送る一例。名前は文字列で、値には複数の型を使える。オブジェクトだけに限定されない。
ひよこ ひよこ
JSONって、名前と値のペアを書くもの?
ペンギン先生 ペンギン先生
オブジェクトでは、例えば {"name":"太郎","age":25} のように、名前と値をコロンで結ぶよ。名前は文字列で、名前と値の組をカンマで区切る。オブジェクトでは同じ名前を重複させないようにするんだ。
ひよこ ひよこ
必ずオブジェクトにしなきゃいけない?
ペンギン先生 ペンギン先生
配列も使えるよ。例えば ["Python","JavaScript"] は順序のある値の並び。JSONの値は、オブジェクト、配列、文字列、数値、真偽値、nullで、全体が42やtrueだけでも標準のJSONに当たる。APIごとの受け付ける形は別の約束だよ。
ひよこ ひよこ
JavaScript以外でも読める?
ペンギン先生 ペンギン先生
言語に依存しないテキスト形式なので、対応する解析処理で読み取れるよ。JavaScript風の見た目でも、プログラムとして実行するのではなくJSONとして解析する。異なるシステム間で交換する文字の符号化にはUTF-8を使うんだ。
ひよこ ひよこ
コメントや最後のカンマは書ける?
ペンギン先生 ペンギン先生
標準のJSONの文法にはコメントや、最後の要素の後の余分なカンマはないよ。文字列とオブジェクトの名前は二重引用符で囲む。特定のツールが独自の拡張を受け付けても、その記法がすべてのJSONの読み取り処理で使えるとは限らないんだ。
ひよこ ひよこ
大きな整数はJSONに書けないの?
ペンギン先生 ペンギン先生
桁の多い整数を十進数で書くこと自体と、受信側が正確に扱えることは別だよ。よく使われる倍精度の数値では、整数を確実に一致させられる範囲はマイナス2の53乗プラス1から2の53乗マイナス1。範囲を超えるIDなどは、文字列として渡す約束を決める方法があるんだ。
ペンギン
まとめ:ざっくりこれだけ覚えればOK!
「JSON」って出てきたら「決まった記法でデータを表す、言語に依存しないテキスト形式」と思えばだいたいOK!
📖 おまけ:英語の意味
「JavaScript Object Notation」 = JavaScriptのオブジェクト記法
💬 JavaScriptのオブジェクト記法に由来する名前。JSONはJavaScriptのプログラムではなく、言語に依存しないデータ交換形式として定義されているよ。

参考資料

← 用語集にもどる