Language
日本語
English

Caution

JavaScript is disabled in your browser.
This site uses JavaScript for features such as search.
For the best experience, please enable JavaScript before browsing this site.

  1. Home
  2. JavaScriptPractice - About JSON and XML (Part 1)

About JSON and XML (Part 1) - Japanese Only

みなさまどうも。

これまでの記事で『Ajax』に必要な知識の『HTTP通信』とかをやって来ましたがもう1つ必要なものである『JSON』って子が居るのでそれを確認していきましょう。

『JSON』の正式名称は『JavaScript Object Notation』になり、読み方は『ジェイソン』になります。13日の金曜日しか活動しないニート予備軍でアイスホッケーなお面を付けたガタイの良い彼とは一切関係はございません。

この『JSON』はデータ記述言語の1つになり、昨今のIT業界だと大体この子を使って通信しているわけでとっても偉い子になりますね。

そこで「データ記述言語ってなんじゃらほい?」ってお話なんですがこれは「配列とか連想配列的な概念を使ったデータの表記方法」だと思ってしまってOKです。連想配列はJavaScriptになるとオブジェクトって呼ばれてるやつですね。

データ記述言語を説明するにあたってちょいと思い出して頂きたいのが配列とか連想配列についてです。配列とか連想配列とかって「『キー』と『値』をセットとする概念で構築されたデータ」って感じでしたよね。

JavaScriptで配列と連想配列(オブジェクト)を定義するとなると以下のようになります。

var arr = ['miku', 'IA']; // これは配列

var map = { // これは連想配列(オブジェクト)
	"name": "初音ミク",
	"category": "VOCALOID"
};

恐らく当記事をお読みの皆様は配列とか連想配列についてよく存じていると思うのですが「欲しいデータを的確に判定したり抽出したりする」ってなると配列とか連想配列の概念って凄く強力ですよね。

これは要するに各データに名前を付けたりカテゴリー分けしたりしてるだけなんですが「データの取扱においてこれほど強力な概念はないんじゃね?」ってレベルで有用に感じて頂けるのではないかと思います。

ところがほぼ全てのプログラム言語に配列とか連想配列的な機能は組み込まれているのですがここで1つ問題が発生します。

それは配列とか連想配列の記述方法や裏側の動作が結構ちがうって事です。例えばPHPになると以下のように定義します。

$arr = ['miku', 'IA']; // これは配列

$map = [ // これは連想配列
	'name' => '個人アカウント',
	'category' => 'VOCALOID'
];

配列や連想配列の概念はほぼ同じなわけなんですがJavaScriptとはやはり記述が結構違ってしまっていますよね。

全ての処理を同じ言語で構築できれば良いのですがそういうわけにもいかないので「違う言語で定義されたデータを違う言語で受け取る」とかなるとここままだと上手く処理を組むことが出来ません。そこで生まれたのがデータ記述言語ってやつになります。

要するに「配列とか連想配列的な概念で構築されたデータを色々な言語で扱うことが出来るようにその部分だけ共通化した規格を用意しておこうぜー」って感じですね。

そして『JSON』が普及する前は『XML』(Extensible Markup Language)っていう子が良く使われていました。『XML』は以下のようなものになります。

<?xml version="1.0" encoding="Shift_JIS"?>
<?xml-stylesheet type="text/xsl" href="testxsl.xsl"?>
<VOCALOID>
	<name0>初音ミク</name0>
	<name1>IA</name1>
</VOCALOID>

これちょっとどこかで見たことありますよね。そうです、皆様が良く触っているであろう『HTML』でございます。

実は『HTML』って『XML』の構文を参考に設計された言語なので『XML』は『HTML』と同じように開始タグとか閉じタグとかを使ってデータをまとめる構造になっています。

さて、この『XML』くんも全然悪くはないのですがちょっと記述が面倒くさそうな感じありますよね。

『HTML』を書いていて誰しもが感じた事あるのではという予感なのですが開始タグとか閉じタグとかってタイピングが少々面倒くさいんですよね。閉じタグ忘れだったりミスが多くなりがちなのもあまりよろしくない感じです。

そこで「配列とか連想配列とかの概念を使いつつもっと簡潔にデータを記述する方法は無いかなー」って偉い人達が思ったわけなんですがそこで注目されたのがJavaScriptくんです。

改めてJavaScriptくんの配列と連想配列の記述方法を見てみましょう。

var arr = ['miku', 'IA']; // これは配列

var map = { // これは連想配列(オブジェクト)
	"name", "初音ミク",
	"category": "VOCALOID"
};

なんだか『XML』と見比べると凄くシンプルで配列とか連想配列とかの概念もちゃんと存在しているし中々良さそうな感じですよね。

というわけでJavaScriptの記述方法を元に偉い人達が作ったデータ記述言語の1つが『JSON』になります。『JSON』は以下のように記述します。

{
	"name":"初音ミク",
	"category":"VOCALOID"
}

ご覧の通りJavaScriptの記述方法とほぼ同じです。しかも『XML』と比べるとかなり簡潔に書けるのでデータ量も凄く少なくなってそうですよね。そこも良い感じに感じて頂けたのではないかと思います。

そしてほぼ全ての言語(一部除く)に『JSONを処理する機能』は大体用意されているので通信する際は『JSON』を使うと色々と調子良かったりします。まあ仮に用意されてなくても文字列を分割して処理すればOKなので結構簡単に『JSON』化する処理は書けちゃったりします。

というわけで次の記事では『JSON』の記述方法について軽くやっていきましょう。ではではこの辺で失礼致します。

This article was written by Sakurama.

Author's beloved small mammal

桜舞 春人 Sakurama Haruto

A Tokyo-based programmer who has been creating various content since the ISDN era, with a bit of concern about his hair. A true long sleeper who generally feels unwell without at least 10 hours of sleep. His dream is to live a life where he can sleep as much as he wants. Loves games, sports, and music. Please share some hair with him.

If you find any errors or copyright issues, please .