JSON入門:データ交換のもう一つのアプローチ
翻訳校正:原井彰弘
本稿では、JSONの設計と応用について詳しく見ていく。JSONはデータ交換のために生まれた技術でJavaScriptの記法を応用している。
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は(人間にとっては)読みにくい形式である。
- 昨日のトップ記事
- 3日前
- 4日前
- 5日前
- 6日前
- ホワイトペーパー
- 読者投票
- 話題のタグ
フォトレポート:世界各国の優秀な技術者がパリに集結--Imagine Cup 2008世界大会
バッチ処理でデータベース活用:4つの課題と5つの解決ポイント
Rubyでどう書く?:RubyでWord文書を作成する
Adobe Acrobat 9--音声やクイズを埋め込んでeラーニング
ウェブ制作者が仲間と幸せに仕事をする方法:仲間との出会い
Excelで多用する雑多な操作を素早く片付けるための10のティップス(前編)
開発者のFirefox 3:非互換のアドオンをインストール
今知るべき仮想化情報
Techno Exchange
「未来の、その先」をどう提言していくか
DELL連載第4回〜「Microsoft System Center」
ZDNet Japan Green IT