JSONとは
JSON(ジェイソン)とは、「JavaScript Object Notation」の略で、データの記述や受け渡しによく使われる軽量なテキストフォーマットのことです。人間にとって読み書きがしやすく、コンピュータにとっても解析(パース)や生成が非常に簡単であるため、現代のウェブ開発において異なるシステム間でデータをやり取りする(Web APIなど)際の標準的な形式として広く普及しています。JavaScriptのオブジェクトの書き方をベースにしていますが、特定のプログラミング言語に依存せず、PythonやJava、PHPなどほぼ全てのプログラミング言語で簡単に読み書きできます。
具体例
ユーザーの名前、年齢、趣味などのデータを表現するJSONの書き方は以下のようになります。キー(名前)と値のペアをコロン「:」で結び、全体を波括弧「{}」で囲みます。
{
"name": "鈴木太郎",
"age": 25,
"hobbies": ["読書", "旅行"]
}
もう少し詳しく
JSON(JavaScript Object Notation)は、テキストベースのデータ交換フォーマットとして、現代のソフトウェア開発において不可欠な技術となっています。もともとはウェブブラウザ上で動作するプログラミング言語であるJavaScriptの一部として、オブジェクト(データのかたまり)を記述するための構文から派生しました。しかし、そのシンプルさと扱いやすさから、現在ではJavaScriptという枠を超えて、ほぼすべての主要なプログラミング言語(Python、Java、Ruby、PHPなど)で標準的にサポートされています。
JSONがこれほどまでに普及した最大の理由は、人間にとって読み書きしやすい直感的なテキスト形式でありながら、コンピュータのプログラムにとっても解析(パース)やデータ生成が極めて容易であるという点にあります。構造が複雑になりがちなXMLと比較すると、JSONはデータ全体を括弧 {} や [] で囲み、キーと値をコロン : で結ぶという非常にシンプルな規則で記述されるため、データ量が少なく軽量です。これにより、ネットワークを通じてデータを送受信する際の通信量を抑えることができ、通信速度の向上にも寄与しています。
JSONでは、文字列、数値、真偽値(true / false)、nullといった基本的なデータ型に加え、配列(リスト)や入れ子になったオブジェクト(階層構造)を柔軟に表現することができます。近年では、スマートフォンアプリとサーバー間の通信、ウェブサイトの一部を動的に書き換えるAjax通信、さらにはさまざまなウェブサービスが提供するWeb API(RESTful APIなど)において、データをやり取りするためのデファクトスタンダード(事実上の標準)として圧倒的なシェアを誇っています。また、NoSQLと呼ばれる一部のデータベース(MongoDBなど)では、データをJSON(正確には拡張形式のBSONなど)の形式でそのまま保存・管理する仕組みを採用しており、システム全体でデータの形を統一しやすいというメリットももたらしています。
試験でのポイント
試験においてJSONは、XMLやCSVなど他のデータ形式との比較として出題されることが非常に多いです。JSONの特徴として「JavaScriptのオブジェクト表記法をベースにしているが、言語を問わず利用できる」「XMLに比べて記述がシンプルでデータサイズが軽量である」「キーと値のペアで構成され、人間にも機械にも読みやすい」というポイントを確実に暗記しておきましょう。
よくある引っ掛け問題として、「JSONはJavaScript専用のデータ形式であり、他の言語では利用できない」という記述が出題されますが、これは誤りです。JSONは特定の言語に依存しない独立したフォーマットです。
また、Web APIやAjaxというキーワードと一緒に登場することが多いため、これらの技術とJSONがセットで使われるという実用的な背景をイメージできていると、問題文の意図を正確に読み取ることができます。XMLが持つタグを用いた階層構造の表現力と、JSONの軽量かつシンプルなデータ構造の表現力を対比して理解しておくことが、得点アップにつながります。
関連する用語
関連する用語として、JSONと同じくデータ交換に広く用いられタグで構造を表現する「XML」、ウェブブラウザとサーバー間で非同期通信を行う技術である「Ajax」、プログラム同士を連携させるための窓口となる「Web API」などがあります。