JavaScriptとJSONでは、行の戻り値を文字列に含めることはできません。それらを脱出する必要があります。
json_encode()
自動的にエスケープする必要があります。
PHPインタラクティブシェルで提供されたJSONコードで遊んだ結果は次のとおりです。
php > $json = '{"content":"aaa
php ' bbb"}';
php > var_dump(json_decode($json, true));
NULL
ご覧のとおり、ラインリターンをエスケープすると、問題なく機能します。
php > $json = '{"content":"aaa\n bbb"}';
php > var_dump(json_decode($json, true));
array(1) {
["content"]=>
string(8) "aaa
bbb"
}
これは、同様の問題に関連する前の質問でもさらに説明されています:jQueryで改行を含むJSON形式のテキストを取得する際の問題