Я хочу передать массив php в код javascript. когда я использую вот так:
var resData = "{{ json_encode($data['calendarItems']) }}";
или это :
var resData = "{{ $data['calendarItems'] }}";
в обоих результат:
[{"title":"rfvd vc","expired_at":"2018-12-31 00:00:00"}] //formatting
и ошибка возврата JSON.parse. не могу получить массив



![Безумие обратных вызовов в javascript [JS]](https://i.imgur.com/WsjO6zJb.png)


Здесь есть две проблемы. Во-первых, вы цитируете вывод json, а во-вторых, результат экранируется в объекты html.
Убираем кавычки и выводим результат в необработанном виде:
var resData = {!! json_encode($data['calendarItems']) !!};
Отсутствие кавычек вокруг результата избавит от необходимости использовать JSON.parse(), поскольку переменная с самого начала будет содержать правильный json.
Узнайте больше о неэкранированных данных в колонке в руководстве.
Возможно, стоит добавить разницу между отображением json в тегах скрипта и json в атрибутах (где требуется экранирование) stackoverflow.com/questions/4227895/…
Когда вы делаете {{ }}, он преобразует строковые элементы внутри в объекты html. поэтому { будет преобразован в "
Я предлагаю использовать пакет это, который имеет более четкую реализацию передачи данных в качестве используемых переменных js в вашем файле блейда.
Вы можете попробовать это:
var mapData = JSON.parse('<?php echo json_encode($latLng) ?>');
где $latLng — массив PHP.
Здесь нет необходимости использовать JSON.parse(). Просто выведите ответ из PHP без кавычек и это уже будет валидный json.
var resData = <?= $data['calendarItems']?>;