JSONに関するメモ

Pocket

JSON形式のデータは次のような文字列で表される。

[{"id":"1","name":"suzuki"},{"id":"2","name":"satou"}]

JavaScriptではそのまま配列変数として使える。
※この場合は2次元の配列となる。

recs=[{"id":"1","name":"suzuki"},{"id":"2","name":"satou"}];
alert(recs[1]["name"]);

このようにすると「satou」と表示される。
※0番目からカウントしたときの1番目の「name」である「satou」が表示される。

JSON形式のデータが外部ファイルのときは次のようにする。
※この例では外部ファイルは「test.json」である。

req = new ActiveXObject("Microsoft.XMLHTTP");
req.open("GET","test.json",false);
req.send();
text=req.responseText;
recs=eval("("+text+")");

ここでポイントはevalを使うことである。
単に「recs=text」としてしまうと

recs='[{"id":"1","name":"suzuki"},{"id":"2","name":"satou"}]';

と同じことになり、文字列として読み込んでしまう。
evalを使うとJavaScriptで使える形式に変換してくれる。

JSONはXMLよりもシンプルであり、JavaScriptにおいてはCSVよりも簡単に扱える。

text="1,suzuki;2,satou";

を配列に読み込むには

recs=new Array();
lines=text.split(";");
for(i=0;i<lines.length;i++){
  recs[i]=lines[i].split(",");
}

のような手順が必要である。
JSONならば

text='[{"id":"1","name":"suzuki"},{"id":"2","name":"satou"}]';
recs=eval(text);

で済んでしまう。

JSON形式のデータは途中に改行が入っていても構わない。また入れ子にすることもできる。

[
  {"id":"1","name":"suzuki"},
  {"id":"2","name":"satou"},
  {"id":"3","name":"yamada",
    "kodomo":{"namae":"ichiro","age":"5"}
  }
]

このような書き方ができる。

recs[2]["kodomo"]["namae"]

とすると「ichiro」が取得できる。
また

recs[2].kodomo.namae

と書いても取得できる。

[ 2009年2月6日 | カテゴリー: JavaScript | タグ: , , ]

« | »

コメント

  1. […] デコードできなかったらこのへんでJSONの構成を確認。→ JSONに関するメモ […]

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

送信してください。


タグ

カテゴリー

最近の投稿

最近のコメント

固定ページ

アーカイブ

stabucky

写真

メタ情報