Задать вопрос
@miniven

Uncaught SyntaxError: Unexpected token при parseJSON(). Как исправить?

Записываю данные из php (Laravel) в переменную js.

var objects = "{{json_encode($objects)}}";
  objects = objects.replace(/"/g,'"');


Тут все нормально, получаю строку формата json

Дальше хочу сделать эту строку объектом и вывести в консоль:

console.log(jQuery.parseJSON(objects));

Получаю
VM3905:1 Uncaught SyntaxError: Unexpected token

В чем проблема? Как исправить? Что не так сделал?
  • Вопрос задан
  • 593 просмотра
Подписаться 1 Оценить Комментировать
Решения вопроса 1
alexey-m-ukolov
@alexey-m-ukolov Куратор тега JavaScript
Не нужно эскейпить данные при выводе и всё заработает без костылей с replace.
А если не оборачивать в кавычки, то и парсить потом не нужно будет - ведь json_encode сразу отдаёт валидный js.
var objects = {!! json_encode($objects) !!};
Ответ написан
Пригласить эксперта
Ответы на вопрос 2
petermzg
@petermzg
Самый лучший программист
"{{json_encode($objects)}}" - это точно не соответсвует формату json
Ответ написан
Комментировать
@Nc_Soft
<script type="application/json" id="json">{"json_data":"here"}</script>
<script>
$(function(){
    var json = JSON.parse($('#json').text());
});
</script>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы