json_decode возвращает значение NULL, если существуют объекты html

#php #json

Вопрос:

Как использовать json_decode, когда json содержит html-объекты? Он всегда возвращает значение null.

Вот пример кода:

 $json = '{
       "text": "amp;<ulamp;>
amp;<liamp;>amp;<strongamp;>amp;apos;amp;quot;Example Textamp;quot;amp;apos;amp;</strongamp;>amp;</liamp;>"
}';

$data = json_decode($json, true);
var_dump($data);
 

Комментарии:

1. Избавьтесь от новых строк в части JSON

Ответ №1:

По какой-то причине у вас есть новые строки в JSON, удалите их, чтобы сделать допустимый JSON, и он будет декодирован.

 $json = '{
    "text": "amp;<ulamp;>
amp;<liamp;>amp;<strongamp;>amp;apos;amp;quot;Example Textamp;quot;amp;apos;amp;</strongamp;>amp;</liamp;>"
}';

//$data = json_decode($json, true);
$data = json_decode( str_replace("n", '', $json), true );
var_dump($data);
 

Результат

 array(1) {
  'text' =>
  string(96) "amp;<ulamp;>amp;<liamp;>amp;<strongamp;>amp;apos;amp;quot;Example Textamp;quot;amp;apos;amp;</strongamp;>amp;</liamp;>"
}