今日のJSメモ

prototype.jsは1.7からブラウザのJSONオブジェクトを考慮されてるっぽいが
というかJSONは最近のブラウザはデフォルトでJSONオブジェクトを実装していて
JSON.parse(str)とかすると文字列をオブジェクトに出来るらしい

その関係で今日は色々とはまった
JSONは基本的にはeval(json)的な感じで変換するわけですが
evalは式を渡さないといけないらしくprototype.jsはeval('('+json+')')と前後に括弧をつける処理をしているわけだが
俺の作ってるPGはサーバー側で自前で({"hoge":"fuge"})と括弧をつけてたわけでして
理由は覚えてないんだけどどっかで最初にみたJSON出力に関スル記事が括弧つけろと書いてあったからだと思う
ちなみにprototype.jsでは1.5まで遡ってみたがその時代から自動で括弧をつける処理をしているっぽいんでやっぱ思い込みでつけてたっぽい

んで本題に戻る
何がはまったかというと
({"hoge":"fuge"})は*1としたところでたぶん問題ないとおもうんだけど
JSON.parseの場合括弧があるとシンタックスエラーがでたわけでして
ただそれだけの話だが一日中無駄に考えていたわ・・・
基本的にAJAX.Requestはtry文につっこまれてonExcepなんたらでエラーだよー程度にしかでねーから
そうするとprototype.jsの中身をみるしかないんだが
tryにtryが入ってたりするので
tryなかったら勝手にエラー箇所で止まってそこをデバッグすりゃいいようなものだが
tryはデバッグしようとするには実にめんどいですのぅというどうでもいい話なのであった。

*1:{"hoge":"fuge"}