Ошибка при парсинге JSON на JS

Есть вот такой JSON (это, если важно, формула из экселя):

{"value":"=IF(C23=1,IF(C21=0,IF(C38=E38,CONCATENATE(TEXT(AB15,\"# ##0\"),\" - \u043f\u0435\u0440\u0432\u044b\u0435 \",W13,\" \u043c\u0435\u0441. \",\" \",),0),0),IF(C21=0,IF(C38=E38,CONCATENATE(TEXT(Z15,\"# ##0\"),\" - \u043f\u0435\u0440\u0432\u044b\u0435 \",W13,\" \u043c\u0435\u0441. \",\" \",),0),0))"}

При вызове JSON.parse к этому JSON возникает ошибка:

Uncaught SyntaxError: Unexpected token # in JSON at position 63

С чем это может быть связано?


Ответы (1 шт):

Автор решения: Платон

В данном случае можно не использовать функцию JSON.parse. Объект приходит от json_encode ($array) в PHP, а console.log вызывается из тега script, который выводится в документ через echo:

$json = json_encode ($array, JSON_HEX_TAG | JSON_HEX_AMP);
echo "<script>console.log ({$json})</script>";

Поэтому JSON.parse нет необходимости использовать, ведь JSON - это уже объект JS.

→ Ссылка