アーカイブ

‘JSON’ タグのついている投稿

はてなハイクとTwitterのAPIの違い

2009 年 2 月 21 日 コメントはありません

はてなハイクのAPIはTwitterと互換性があるとのこと。
私はJavaScriptではてなハイクとTwitterの過去の投稿を抽出しているのですが、確かに同じコードで動きます。

しかし若干、異なる点があるので、書いておきます。
続きを読む…

カテゴリー: デジタル タグ: , , ,

VBAでExcelの表をJSON形式に変換する

2009 年 2 月 6 日 コメントはありません

Excelの次のような表をJSON形式にするVBAです。

id name date
1 a1 20081010
2 a2 20081011
3 a3 20081012
4 a4 20081013
5 a5 20081014
6 a6 20081015
7 a7 20081016
8 a8 20081017
9 a9 20081018
10 a10 20081019

新しいシートを開き、そこにJSON形式のテキストを出力します。 続きを読む…

カテゴリー: デジタル タグ: , , ,

JSONに関するメモ

2009 年 2 月 6 日 コメントはありません

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

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

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

var 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

とかいても取得できる。

カテゴリー: デジタル タグ: , ,