получение файла json, сгенерированного php, в jquery - пустой объект - почему?

0

У меня есть файл php:

header('Content-Type: application/json');
echo json_encode(array(array('id' => 0, 'name' =>'test')));

он генерирует файл следующим образом:

[{"id":0,"name":"test"}]

то я передаю его jquery с:

    $.ajax({ 
            type: 'POST', 
            url: "test.php",
            dataType: 'json',
            success: function (data) { 
                console.log(data + '\n' + data.status +':' + data.message);
            }
        });

но он генерирует:

[object Object]
undefined:undefined 

Зачем? Я также пробовал функцию parseJSON, но без результата. Что я делаю не так?

  • 0
    когда вы получаете данные console.log, вы получаете [объект Object]?
  • 0
    Почему ваш объект находится внутри массива, если вы используете его, как если бы он не находился внутри массива?
Показать ещё 5 комментариев
Теги:

1 ответ

2
Лучший ответ

Поскольку JSON представляет собой массив, он должен, вероятно, быть:

$.ajax({ 
        type: 'POST', 
        url: "test.php",
        dataType: 'json',
        success: function (data) { 
            for(var i=0; i<data.length; i++){
                console.log(data[i] , '\n' , data[i].status , ':' , data[i].message);
            }
        }
 });
  • 0
    я изменил массив, который я json_encode для: echo json_encode (массив (массив ('id' => 0, 'name' => 'test'), массив ('id' => 1, 'name' => 'abc') )); Используя ваш метод, я могу теперь получить все необходимые значения, утешая его через data [i] .id - для меня это означает, что данные - это скорее массив, чем объект. Могу ли я как-то получить правильные значения через data.name.id, например data.abc.id и получить 1 в ответ?
  • 0
    PHP не мой основной язык ... Возможно, вам придется создать класс объекта, затем установить значения этого класса и запустить для него json_encode() .
Показать ещё 1 комментарий

Ещё вопросы

Сообщество Overcoder
Наверх
Меню