4

jQuery.parseJSON()を使用してjsonを解析すると、このエラーが発生します

SyntaxError: JSON.parse: bad control character in string literal

クイック検索では、これはjson文字列の改行が原因であることがわかります。

json_encode()を使用してPHPからjson文字列を取得します。

jQuery.parseJSON()が文句を言わず、改行情報を保持するような方法でエンコードする方法はありますか?

4

1 に答える 1

6

v8バグトラッカー(http://code.google.com/p/v8/issues/detail?id=616)によると、これは実際には正しい動作です。

「JSON文字列内での改行は許可されていません(制御文字は使用できません。たとえば、ECMA262 5edのJsonStringCharacter生成、セクション15.2.1.1を参照してください)。」

したがって、実際には何をしたいかによって異なります。この場合、改行が必要なので、json解析を実行する前に改行をエスケープする必要があります。

//myjsonobject contains the json object

var obj = jQuery.parseJSON(myjsonobject.replace(/\n/g,"\\n"));
于 2012-08-15T08:57:50.023 に答える