JSON.parse が駄目なら eval でいいじゃない
cakephpでjson返してjavascriptで JSON.parse するとparseエラーが出た。別の環境だとうまくいくのに。phpのバージョンとかjqueryのバージョンも関係なさそう。理由がさっぱり分からん。上手くいかないケースはタブが\tでなかったり、/がエスケープされてなかったりするんだけど、内容的に違いは無かった。
なのでJSON.parseよりもチェックの緩いevalにしたところ、ひとまず処理された。
$.ajax({ type: "post", url: url, data: data, success: function(json) { //var res = JSON.parse(json); var res = eval('(' + json + ')'); } });
セキュリティや速度の面でもJSON.parseを使うのが推奨されているようなので、使っても大丈夫なケースで利用したらいいんじゃないかと思う。
以下のサイトでJSONが正しいか判定することができるので便利
JSONLint - The JSON Validator.
参考サイト
JSONを設定ファイル代わりに使う場合は JSON.parse → だめなら → eval のように二段階で評価するといいんじゃないかな - latest log
夕暮ログ JSON.parseとevalなどの比較とスピードテスト