Hatena::ブログ(Diary)

latest log このページをアンテナに追加 RSSフィード

2010-06-19

String.toJSON(), JSON.stringify(), JSON.parse() の実装比較一覧

"あa".toJSON()JSON.stringify("あa")JSON.stringify({"あa": null})
Google Chrome6(dev)"あa" ""\u3042a"" "{"\u3042a":null}"
Safari5 not impl ""あa"" "{"あa":null}"
Opera10.60β not impl '"あa"' '{"あa":null}'
Firefox3.6.3 "あa" ""あa"" "{"あa":null}"
IE8 "あa" ""\u3042a"" "{"\u3042a":null}"
IE6, IE7 not impl not impl not impl
JSON.parse('"あa"')JSON.parse('"\u3042a"')
Google Chrome6(dev)"あa" "あa"
Safari5 "あa" "あa"
Opera10.60β "あa" "あa"
Firefox3.6.3 "あa" "あa"
IE6, IE7 not impl not impl

ChromeIE8JSON.stringify()で非ASCII文字をエンティティ化(\uffff)するようです。

おまけ

Firefox限定になりますが、uneval("あa") は ""\u3042a"" になります(id:os0x さんに教えてもらいました)。

uneval() は JSON互換ではなく、他のブラウザにも実装されていないため、なかなか使いどころが無いと思いますが、書き留めておきます。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト

コメントを書くには、なぞなぞ認証に回答する必要があります。

トラックバック - http://d.hatena.ne.jp/uupaa/20100619/1276961596