2010年10月17日日曜日

JSONとは

JSON(ジェイソン、JavaScript Object Notation)とは、JavaScriptにおけるオブジェクトの表記法をベースとした軽量なデータ記述言語である。

http://ja.wikipedia.org/wiki/JavaScript_Object_Notation

Webを単にブラウザからの画面繊維を受け付けるサーバとして動かすのではなく、Java Scroptやその他プログラムから、動的な情報交換のサーバとして機能させる場合のプロトコルとして利用される。

iPhoneの場合は、JSON Frameworkや、Touch JSONなどのライブラリを使って、NSArrayやNSDictionaryの拡張プロパティ等を通じサーバから取得したデータにアクセスする。


表記方法

JSONで表現するデータ型は以下の通りで、これらを組み合わせてデータを記述する。true,false,nullなどは全て小文字でなくてはならない。

数値(整数、浮動小数点数)
文字列(バックスラッシュによるエスケープシーケンス記法を含む、ダブルクォーテーションで括った文字列)
真偽値(trueとfalse)
配列(データのシーケンス)
オブジェクト(キーと値のペアの集まり。JSONではハッシュと等価)
null

数値は10進法表記に限り、8進、16進法表記などはできない。また浮動小数点数としては1.0e-10といった指数表記もできる。

文字列はJavaScriptやJavaなどで用いられている表記法で、バックスラッシュをエスケープシーケンスとして利用するUnicodeの文字列表現である。
配列はゼロ個以上の値をコンマで区切って、角かっこでくくることで表現する。例えば以下のように表現する:
["milk", "bread", "eggs"]

オブジェクト(ハッシュ)はキーと値のペアをコロンで対にして、これらの対をコンマで区切ってゼロ個以上列挙し、全体を中かっこでくくることで表現する。例えば以下のように表現する:
{"name": "John Smith", "age": 33}

エンコーディング
JSONテキストはUnicodeでエンコードするとされている(SHALL)。デフォルトのエンコーディングはUTF-8である。なお、単独の文字列でない限り最初の2文字は必ずASCII文字であるので、最初の4バイトを見ることにより、UTF-8、UTF-16LE、UTF-16BE、UTF-32LE、UTF-32BEのいずれの形式でエンコードされているか判別できる。

0 件のコメント:

コメントを投稿