JavaScriptの配列, 連想配列, JSON

JavaScriptには、キーのペアを収めるための手段として、配列と連想配列とJSONがある。みな似通ったものばかりなに、なぜこんな種類に分けられているのか?そんな不思議への答えを調べてみた。

以下サラッとまとめる。

配列
Arrayオブジェクト。キーには数値を。
var boxes = ["index 0", "index 1", "index2", …];
boxes[1];    //文字列"index 1"を意味する
Arrayオブジェクトを操作してキーと値のペアを収めれば、それはもうJavaScriptでは配列として扱われる。キーは数値であり、その数値で対応する値を呼び出す。大抵プログラミング言語で配列と呼ばれるものの宣言・使用方法は、これと同じである。

連想配列
JavaScriptのオブジェクトそのもの。キーには文字列を。
var boxes = {
    key0 : "value0",
    key1 : "value1",
        …
};
boxes["key0"];    //文字列"value0"を意味する
boxes.key0;       //こちらも文字列"value0"を意味する
キーに文字列を使った配列。角括弧でキーとなる文字列を指定する方法よりも,ドット記法(下)の方が一般的。キーは文字列であり、その文字列で対応する値を呼び出す。と言っても、配列という名前をしているこれは、実はJavaScriptで言うとオブジェクトそのものなのだ。JavaScriptのすべてのオブジェクトは連想配列で書ける。つまりObjectオブジェクトも、Stringオブジェクトも、Arrayオブジェクトも、みんな連想配列の形をしているということ。連想配列=オブジェクト。正直イコール3つでも問題ないだらう(連想配列===オブジェクト)//true! なのでキーというよりもプロパティ名と言った方が良いところ。下記参考サイトより、”とほほのJavaScriptリファレンス”を見てもらうと、この等式をイメージしやすい例が載っている。連想配列を”簡易的なオブジェクトの生成”と紹介している。

JSON
軽量かつ互換性が高い。キーには”文字列”を。
var boxes = {
    "key0" : "value0",
    "key1" : "value1",
        …
};
boxes.key1;    //文字列"value1"を意味する
JavaScriptだけに限らず、サーバー側(Webページ提供元)で動作することの出来る他のプログラミング言語(C++,Lisp,PHP,Javaなどなど)でも使える、互換性の良い連想配列。名前はJSONだが、これも連想配列だ。ただ連想配列と同じと言っても、キーをダブルクオーテーションで括る書き方でないとならないのは厄介だ(もちろん連想配列でも、キーをダブルクオーテーションで括る書き方ができる)。括らないと、JSONからオブジェクトへ変換する時にエラーを吐く。複数のデータをリストのようにまとめるならば、JSONを採用することでファイルサイズを小さくできると言われる(本当かどうか疑問)。これらのことからデータ通信に適したフォーマットとして注目されている(特にAjax)。最近のJavaScriptはJSONにネイティブ対応している。JavaScript上でJSON.parse(ファイル);を呼ぶだけで、JSONファイルをオブジェクトへと変換でき、そのまま扱えるようになる(なぜならば基本的な構文が連想配列と同じだからだ)。ちなみにキーは文字列であり、その文字列で対応する値を呼び出す。

参考サイトたち:

5796088844076684458 http://www.storange.jp/2012/06/javascript-json.html http://www.storange.jp/2012/06/javascript-json.html JavaScriptの配列, 連想配列, JSON 2012-06-27T20:04:00+09:00 http://www.storange.jp/2012/06/javascript-json.html Hideyuki Tabata 200 200 72 72