JSON入門:データ交換のもう一つのアプローチ

文:Nick Gibson(Builder AU)  翻訳校正:原井彰弘
2008-01-17 15:30:00
  • このエントリーをはてなブックマークに追加

 XMLは、データ交換のための媒体として開発され導入された技術である。しかし、すべての開発者がXMLを大歓迎で受け入れたわけではない。中には、XMLの代替を実際に開発することを選択した開発者もいるのである。JSON(http://www.json.org/)(JavaScript Object Notation)も、そのようにして生まれた代替物の一つだ。本稿では、JSONの設計と応用について詳しく見ていく。

JSONとは何か

 JSONは、JavaScriptのオブジェクト記法を用いて書式を指定する単純な方法だ。「データ指向」と呼ばれて、他の技術の設計で多用されており有名な「オブジェクト指向」と比較されることもある。JSONではプログラムの構成要素をそのまま用いるため、人間にもマシンにも理解可能な形式でデータを表現できるという特徴がある。

 JSONはテキストベースのデータをやりとりするために設計されている。従って、バイナリオブジェクトの利用はまったくサポートされていない。JSONでは基本的に2つの種類のデータ構造がサポートされている。一つは(オブジェクトのように)名前と値のペアからなるコレクション、もう一つは(配列のように)値を要素として持つ順序付きリストだ。以下に、JSONでサポートされているデータ要素の詳細を一覧で示そう。

  • オブジェクト:オブジェクトはブレース({})で始まりブレースで終わる。
  • オブジェクトのメンバ:オブジェクトの要素はコロン(:)で区切られた文字列と値で構成される。メンバが複数ある場合は、カンマ(,)で区切られる。
  • 配列:配列はブラケット([])を用いて定義される。つまり、配列はブラケットで始まりブラケットで終わる(※訳注:原文では「配列はブレースで始まりブレースで終わる」となっておりますが、正しくは「配列はブラケットで始まりブラケットで終わる」です)。配列に含まれる値はブラケットの内側に記述され、値が複数存在する場合はカンマで区切られる。
  • 値:値は文字列、数値、そしてtrueやfalse、nullといったリテラルのいずれかである。文字列は二重引用符で囲まなければならず、内側にはUnicodeの文字とバックスラッシュまたはエスケープ文字を含むことができる。ちなみに、文字を表す表記方法はないので、文字を一つ含む文字列で表現する。

 JSONの特徴はその単純さにある。XMLよりはるかに単純なのだ。これは、JSONで表現したデータの構文と書式を見ていただくと非常に分かりやすい。以下のJSONのコードでは、ウェブサイトのアドレスを配列で作成している。

{
"websites":[

"http://www.techrepublic.com/",

"http://www.cnet.com/",

"http://www.news.com/"

] }

 頭をかきむしって「XMLでも簡単に記述できればよいのに!」ととまどうのはやめよう。

なぜXMLではないのか

 XMLは優れたデータの媒体である。独自にタグ等を作成して、種類や量に関係なくデータを表現することができる。また、XMLはIT業界では標準として名高い。

 一方で、XMLは多くのタスクにとっては複雑すぎるため、必要のないオーバーヘッドが多数発生してしまうこともある。また、作成するのは簡単だとしても、XMLは(人間にとっては)読みにくい形式である。

  • 新着記事
  • 特集
  • ブログ
このサイトでは、利用状況の把握や広告配信などのために、Cookieなどを使用してアクセスデータを取得・利用しています。 これ以降ページを遷移した場合、Cookieなどの設定や使用に同意したことになります。
Cookieなどの設定や使用の詳細、オプトアウトについては詳細をご覧ください。
[ 閉じる ]