JSON.parse に渡せるJSON文字列が厳密すぎて使いにくい件

JSON文字列をオブジェクトに変換してくれる JSON.parse() を使ってみたが、
かなり使いにくく感じた。


というのも、

JSON.parse("{hoge: 1}");  // error

これがSyntaxErrorになる*1


JSON.stringify() が厳密なJSON文字列をくれるらしいので、
どう書けばよかったのか、回答を頂く。

JSON.stringify({hoge: 1});  // {"hoge":1}


試す。

JSON.parse('{"hoge":1}');  // ok


でも、文字列をシングルクオートにすると、

JSON.parse("{'hoge':1}");  // error

SyntaxErrorになる。


値が文字列の場合も同様。

JSON.parse('{"hoge":"foo"}');  // ok

JSON.parse('{"hoge":' + "'foo'" + '}');  // error ({"hoge":'foo'} こんな文字列)

うーん。。。


これだとeval使いたくなりますな。。

*1:試した環境は Firefox3.6.3、Chrome5.0.375.70