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に似た何かができました。