Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

json_decode(json_encode(um array indexado)) dá NULL


JavaScript e JSON não permitem que retornos de linha estejam contidos em uma string. Você precisa escapar deles.

json_encode() deve escapar deles automaticamente para você.

Aqui está a saída do meu jogo com seu código JSON fornecido no shell interativo do PHP:
php > $json = '{"content":"aaa
php ' bbb"}';
php > var_dump(json_decode($json, true));
NULL

Como você pode ver, quando eu escapo seu retorno de linha, ele funciona bem:
php > $json = '{"content":"aaa\n bbb"}';
php > var_dump(json_decode($json, true));
array(1) {
  ["content"]=>
  string(8) "aaa
 bbb"
}

Isso também é discutido em uma pergunta anterior relacionada a um problema semelhante:Problema ao recuperar texto no formato JSON contendo quebras de linha com jQuery