Ajaxで用いるデータフォーマットの比較 (JSON)

JSON (JavaScript Object Notation)は、Ajaxの普及と共に注目を集めつつあるデータフォーマットである。JSONJavaScriptの文法を用いて、XMLと同様のデータフォーマットを実現している。JSONの詳細についてはhttp://www.crockford.com/JSON/index.htmlを参照のこと。
JSONの例は次のようなものである。

{"cities": [
     {"name": "青ケ島青ケ島村", "initial:" "あ"},
     {"name": "足立区", "initial:" "あ"}
    ]
}

JSONについては、XMLとの差分で説明した方が簡単である。JSONXMLに対する主な差分は2点ある。

  1. データに型があり、文字列型、数字型、配列型を持てる。
  2. フォーマットがJavaScriptの文法と一致する。

特に最後の特徴がAjaxにおいて重要である。この特徴により、JSONデータはJavaScriptのevalメソッドで、簡単にJavaScriptのObjectに変換できる。
従って、XMLを解釈する時のように、getElementsByTagNameなどのメソッドを使わず、直接JavaScriptでデータを解釈することが可能となる。また、JavaScriptのObjectは必要最小限の情報しか持たないので、実行速度や、使用メモリの観点からも、JSONXMLに勝る。

まとめると、多くの場合、XMLよりもJSONの方がAjaxのデータフォーマットとしては適していると考えられる。XMLXSLTを使えるなどの利点を持っているが、JSONの優位性は揺らがないと思う。Ajaxの最も主要なデータフォーマットになる可能性は高いだろう。