13日の金曜日なのでJSON…と似つかぬものについて

今日は13日の金曜日。決戦は金曜日。
13日の金曜日ということで、ジェイソン(JSON)のお勉強をしましょう。

13日の金曜日はJSONの勉強をしよう!

便乗してみます。

以前、

これで、XMLHTTPRequest+evalでの2通りの取得可能、script要素を使った別ドメインからの利用も読み込み完了コールバックつきで可能、データの追加は追加書き込みで可能という豪華なJSONができました。

JSONの書き方について考えてみた・2 - AjaxでBBSを作る 〜GA-BBS開発日記〜

なんてことを考えたけど、それをさらに進めて、グローバル空間の汚染を抑えたものが思いついたので、この機会に公開します。

(function(){
  var o = [];
  var f = function(b) {
      this.push(b);
      return this;
  };
  o.a = f;
  setTimeout(function(){
    if (o.a == f) { delete o.a; }
    if (typeof callback == 'function') { callback(o); }
  }, 0);
  return o;
})()
.a({title:"aaaa", text:"bbbb"})
.a({title:"cccc", text:"dddd"}) // データ追加時は .a({ ... }) を増やしていく

これで、

var o = eval(responseText);

でも、

eval('var o = ' + responseText);

でも、

<script>
function callback(o) { /* ... */ }
</script>
<script src="hoge.json"></script>

でも読み込めるし、サーバー側ではテキストファイルへの追記でデータを追加できる、JSONに似た何かができました。

この記事を読んだ人にはこの記事もおすすめです

2006-01-13 JSONをsrcipt要素で読み込む方法