Есть JSON массив в таком виде.
[{"id":"1","name":"Name 1"},{"id":"2","name":"Name 2"}]
Раньше эти данные были на отдельной страничке и я получал данные таким способом
$.getJSON("searchshop.php", function(json){
for (i = 0; i < json.length; i++) {
alert(json[i].id);
}
});
Все работало хорошо, но сделал передачу не в файл а напрямую в обработчик то ничего не работает. пробовал сделать так
respone = '<?php echo $json; ?>';
var obj = jQuery.parseJSON(respone);
Выдает ошибку
VM11773:1 Uncaught SyntaxError: Unexpected token ' in JSON at position 0
Как мне преобразовать $json в объект javascript ? что бы с ним можно было работать как с массивом. Подозреваю что причина в том что что бы сработала parseJSON нужна строка json а не объект, но как преобразовать объект в строку не знаю.
response = '<?php echo $json; ?>';
console.log("Type 'response'", typeof response);
try {
console.log("Length of response", response.length);
} catch(err) {
console.log("Error", err)
}
Не могли бы вы запустить данный код и показать логи?
Попробуйте с использованием этого:
JSON.stringify();
Вам необходимо понять что вам приходит в respone, текст или массив. Если там массив, то ничего преобразовывать не надо, а если текст то используйте JSON.parse();
//Приходит массив
let resp = [{"id":"1","name":"Name 1"},{"id":"2","name":"Name 2"}];
for (i = 0; i < resp.length; i++) {
console.log(resp[i])
}
//Приходит текст
let respText = '[{"id":"1","name":"Name 1"},{"id":"2","name":"Name 2"}]'
let respJson = JSON.parse(respText);
for (i = 0; i < respJson.length; i++) {
console.log(respJson[i])
}
Виртуальный выделенный сервер (VDS) становится отличным выбором
Подскажите пожалуйста как заместо слова "Обновлено" добавить иконку например <i class='icon fa fa-check'></i> которая плавно исчезнет через пару...