JSON(JavaScript Object Notation)

分類
テクノロジ系 アルゴリズムとプログラミング
出る試験
基本情報応用情報
重要度
★★★☆☆

名前と値の組でデータを表す書き方。XMLより短く書けるので、Webのやり取りで広く使われる。

もう少し詳しい説明

JSONは、データを文字列として書き表すための形式です。プログラムどうしがデータを受け渡すときに使います。

{
  "題名": "基本情報技術者試験の教科書",
  "価格": 2200,
  "著者": ["山田", "鈴木"],
  "絶版": false
}

2つの形だけで組み立てる

JSONの作りは単純で、2つの形しかありません。

値として置けるのは、文字列・数値・真偽値(true / false)・null、そしてオブジェクトと配列そのものです。値の位置にまたオブジェクトを置けるので、何段でも入れ子にできます。

注意したい点が2つあります。文字列は必ずダブルクォートで囲むこと。そしてコメントが書けないことです。後者は不便に見えますが、「解析のための指示をコメントに書く」という使われ方を避けるため、意図的に外されています。

JavaScript生まれだが、JavaScript専用ではない

名前のとおり、JavaScriptのオブジェクトの書き方をもとにしています。

ただし、いまのJSONは特定の言語に縛られない形式として標準化されています。インターネット標準の RFC 8259(2017年)と、ECMA-404(2013年)があり、国際規格の ISO/IEC 21778 にもなっています。

Java でも Python でも C# でも、JSONを読み書きする仕組みが用意されています。どの言語から見ても同じように扱えるという点が、受け渡しの形式として選ばれる理由です。

XMLと比べる

同じ目的の形式としてXMLがあります。試験では、この2つの比較がそのまま出ます。

XMLJSON
書き方タグで囲む名前と値の組
同じ内容を書いたときの長さ長くなりやすい短く済む
コメント書ける書けない
構造の検証XML Schema / DTD が確立しているJSON Schema はあるが、XMLほど普及していない
主な使いどころ構造を厳密に決めたい文書Webでのデータのやり取り

長さの差は、終了タグを書くかどうかから来ます。XMLは <価格>2200</価格> と項目名を2回書きますが、JSONは "価格": 2200 の1回で済みます。

項目が何千件もあると、この差がそのまま通信量の差になります。Webのやり取りでJSONが主流になったのは、この短さが理由です。

何に使われているのか

Webのやり取りが最大の使い道です。Ajax(ページ全体を読み込み直さず、裏で通信して必要な部分だけを書き換える作り方)でサーバ(要求を受け取って、応えを返す側の機械)からデータを受け取るとき、そのデータの中身はほとんどがJSONです。

設定ファイルにもよく使われます。見た目が人にも読めるので、書き換えやすいためです。ただしコメントが書けないので、設定の意図を書き残せないという不満もあります。

試験ではこう出る

科目A(旧・午前)で出ます。いちばん多いのは、JSONの説明を選ばせる問題です。「名前と値の組でデータを表す」「軽量な記述形式」という表現が答えになります。

次に多いのが、XMLとの比較です。「同じデータならXMLより短く書ける」という向きで出ます。

取り違えやすいのは、JSONとJavaScriptの関係です。JSONはデータの書き方であって、処理を書く言語ではありません。「ブラウザ(Google Chrome、Microsoft Edge、Safari など、Webページを見るソフト)上で動作する」という説明が付いていたら、それはJavaScriptのほうです。

具体的なJSONの文字列を見せて、どの値を取り出せるかを答えさせる形も出ます。波かっこは名前で引き、角かっこは順番で引く、と覚えておけば読めます。

関連する用語

XML
同じくデータを受け渡す書き方。構造をきちんと決めて守らせたい場面ではこちら
Ajax
ページを再読み込みせずに一部を書き換える手法。やり取りする中身はJSONが主流
木構造
枝が分かれていくデータ構造。JSONも入れ子にできるので、同じ形を表せる
文字コード
文字と番号の対応。JSONの文字列はUnicodeで表される

ミニクイズ

JSONの説明として、最も適切なものはどれか。

正解は 3番:名前と値の組や配列を用いて、データを文字列として表現する軽量な記述形式である

JSONは、名前と値の組を波かっこでまとめた形と、値を並べた配列の形を組み合わせて、データを文字列として表します。タグを二度書かずに済むので、同じ内容でもXMLより短くなります。JavaScriptの書き方をもとにしていますが、仕様としては特定の言語に依存せず、どの言語からでも読み書きできます。タグで囲んで構造を表すのはXML、ブラウザ上で動くスクリプト言語はJavaScriptそのもの、データベースへの問合せに使うのはSQLです。

間違えた用語の復習リストを見る →

この分野をまとめて解く → アルゴリズムとプログラミングのミニテスト(全44問)

最終更新:2026-10-09