JSON 【JavaScript Object Notation】
概要
JSON(JavaScript Object Notation)とは、JavaScriptにおけるオブジェクトの表記法を応用したテキスト(文字)ベースのデータ形式。多数の要素が複雑な構造で組み合わせられたデータを簡潔な表記で書き表すことができる。JavaScriptプログラム上ではコードとして実行するだけで読み込みが完了する。JavaScriptではオブジェクト定義の構文として、キーと値のペアを列挙したデータ構造を用いる。これは他のプログラミング言語では連想配列、ハッシュ、マップ、辞書(ディクショナリ)などと呼ばれるものに近い。
JSONでは、これと配列を利用して複合的なデータ構造を記述することができる。配列やオブジェクトの値として別の配列やオブジェクトを入れ子の形で記述でき、深い階層構造を持つ複雑なデータを表すことができる。
値として利用できるデータ型はJavaScriptに用意されているプリミティブデータ型で、整数型、浮動小数点数型、文字列型、ブール型(真偽値)、null(値無し)、配列、オブジェクトである。
配列は [“A”,“B”,“C”] のように全体を角括弧で囲み、値をカンマ区切りで列挙していく。オブジェクトは { Key1:“Value1”, Key2:“Value2”} のように全体を中括弧で囲み、キーと値をコロン(:)で区切って表記したペアをカンマ区切りで列挙していく。
JSONはJavaScriptでの扱いが簡単なため、WebサービスやAjaxなどでプログラム間でのデータ交換フォーマットとして多用されている。また、数多くのプログラミング言語でJSONを簡単扱えるようにする追加機能などが公開されており、設定ファイルやデータ交換などでXMLに代わって普及している。
歴史
JSONはもともとJavaScriptの構文規則の一部だが、2001年にダグラス・クロックフォード(Douglas Crockford)氏がこれをデータ形式のように扱うことできることを「発見」し、これをJSONと命名した。
2006年には独立したデータ形式としてIETFがRFC 4627として規格化した。JavaScriptの標準化を行っていたEcma Internationalが2011年にECMAScript 5.1の一部として標準化、2013年にはECMA-404として独立した規格が発行された。両団体間で一部の仕様が異なる問題があったため、2017年にRFC 8259およびECMA-404の改訂版として仕様が統一された。