jQuery.parseJSON()を使用してjsonを解析すると、このエラーが発生します
SyntaxError: JSON.parse: bad control character in string literal
クイック検索では、これはjson文字列の改行が原因であることがわかります。
json_encode()を使用してPHPからjson文字列を取得します。
jQuery.parseJSON()が文句を言わず、改行情報を保持するような方法でエンコードする方法はありますか?
jQuery.parseJSON()を使用してjsonを解析すると、このエラーが発生します
SyntaxError: JSON.parse: bad control character in string literal
クイック検索では、これはjson文字列の改行が原因であることがわかります。
json_encode()を使用してPHPからjson文字列を取得します。
jQuery.parseJSON()が文句を言わず、改行情報を保持するような方法でエンコードする方法はありますか?
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"));