Вот вопрос:json_encode PHP 5,5 против 5,3 не играет хорошо с JS
$locArr
это огромный массив
Затем вытащить эту информацию в JS я использую
var oLocations = <?= json_encode($locArr, JSON_FORCE_OBJECT) ?>;
код, созданный с помощью oLocations = json_encode($locArr);
var oLocations = $.parseJSON(,"LastDataBuild":"","Drop24Hour":"NO","Pickup24Hour":"NO","MileageUnit":"MI","AirportIndicator":"0",...
Обратите внимание на первую запятая, это бросает
Uncaught SyntaxError: Unexpected token ,
если я обернуть все в кавычках, так что он оценивает в строку я получаю
Uncaught SyntaxError: Unexpected token :
Я попытался json_encoding в и за пределами JavaScript, бездельники, кажется, работает.
Самая трудная часть обо всем этом является то, что в PHP 5.5 можно использовать:
json_encode($locArr, JSON_PRETTY_TEXT | JSON_FORCE_OBJECT);
и все работает нормально. Консоль выведет хороший объект OBJECT вместо строки без каких-либо ошибок.
Неужели кто-нибудь еще испытал это или у вас есть идеи о других вещах, которые я могу попробовать?
Ниже текущее состояние моего кода (я взаимозаменяемые добавление/удаление нескольких строк кода, в то время.):
Декларирование вар в PHP:
$oLocations = json_encode($locArr, JSON_FORCE_OBJECT);
JS пытается использовать массив:
var oLocations = JSON.parse(<?= $oLocations ; ?>);
// while(oLocations.charAt(0) !== '"'){
// oLocations = oLocations.substr(1);
// };
// oLocations = '{' + oLocations;
// oLocations = $.parseJSON(oLocations);
// oLocations = JSON.parse(oLocations);
// console.log(oLocations);
// oLocations = $.parseJSON(oLocations);
для этого примера JS бросил эту "Uncaught SyntaxError: Unexpected token o "
и это код его реферирование:
var oLocations = $.parseJSON([{"RentalLocationID":"KBR","RentalLocationStatus":"Active","RentalLocationType":"Corporate","RentalLocationName":"KBR HOURS M-F 730-6 SAT 9-1 SUN 10-2","AddressLine1":"8555 JOHN CARPENTER FWY","AddressLine2":"","Latitude":"0","Longitude":"0","AddressCity":"DALLAS","AddressState":"TX","AddressStateName":"TEXAS","AddressZipCode":"75247","AddressCountry":"US","AddressCountryName":"UNITED STATES","PhoneNumber":"214-630-6555","AltPhoneNumber":"","FAXNumber":"","ConfirmMessage":["","","",""], ...
Ваше заявление ' json_encode ($ locArr, JSON_FORCE_OBJECT)?> 'отсутствует' echo'. Без него строка JSON генерируется, но не используется вообще. – lxg
Извините, что это опечатка. Фиксация сейчас. – woodfordreserve
Вам не нужно передавать его через JSON.parse.Вы можете просто выполнить «var oLocations = = Echo $ oLocations; ?>; –