2009/11/29
■[js] prototype.jsとChrome/Firefox組み込みのJSON.stringifyが衝突する 
最近のChromeやFirefoxはJSONオブジェクトが標準付属してるっぽいのですが、それとprototype.jsが干渉してJSON.stringifyの挙動がおかしくなるようです。
prototype.js 1.6.1をロードした状態で
JSON.stringify({"a": ["b", "c"]})
とすると '{"a":"[\"b\", \"c\"]"}' が返ってきます。配列の部分が二重にJSON化されています。
このへんによるとprototype.jsとJSONオブジェクトが同じObject#toJSON()という名前を違う用途で使っているのが問題らしいです。
まあ今時prototype.jsなんて使うなよ、っていう話なのかもしれませんが。いい加減jQueryでも覚えようかな…。
ちなみにjson2.jsは組み込みのJSON実装があればそちらを使うようになっています。なのでjson2.jsを使っていても同じ問題が起きるので注意*1。
コメントを書く
トラックバック - http://d.hatena.ne.jp/Gimite/20091129/1259495440
リンク元
- 100 http://penchi-google.blogspot.com/2007/03/googletodo.html
- 92 http://www.google.co.jp/search?hl=ja&client=firefox-a&rls=org.mozilla:ja:official&hs=fjk&q=Google+ニュース RSS&btnG=検索&lr=lang_ja&aq=f&oq=
- 69 http://www.google.co.jp/search?q=google+ニュース+RSS&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rlz=1R1GGGL_ja___JP333&client=firefox-a
- 48 http://www.google.co.jp/search?sourceid=navclient&hl=ja&ie=UTF-8&rlz=1T4GWYH_jaJP335JP335&q=js+flash
- 45 http://www.google.co.jp/search?q=googleニュース RSS&lr=lang_ja&ie=utf-8&oe=utf-8&aq=t&rls={moz:distributionID}:{moz:locale}:{moz:official}&client=firefox-a
- 36 http://www.google.co.jp/search?hl=ja&q=googleニュース rss&btnG=Google+検索&lr=&aq=f&oq=&sourceid=Mozilla-search
- 33 http://www.google.co.jp/search?hl=ja&source=hp&q=google+ニュース+rss+フィード&lr=&rlz=1R2GFRE_jaJP355&aq=0&oq=google+ニュース RSS
- 31 http://www.google.co.jp/search?hl=ja&q=google+ニュース+rss&lr=lang_ja
- 31 http://www.google.co.jp/search?hl=ja&safe=off&client=firefox-a&rls=org.mozilla:ja:official&hs=J4z&q=ruby+./setup.rb エラー&btnG=検索&lr=lang_ja&aq=f&oq=
- 29 http://g.1o4.jp/news-rss.html