jQuery $ .get () Array Возвращает [объект Object] - PullRequest
1 голос
/ 23 февраля 2011

test.php включает в себя:

echo json_encode( array(
  array("name"=>"John","time"=>"2pm"),
  array("name"=>"2","time"=>"1242pm"),
  array("name"=>"J231ohn","time"=>"2p213m"),
));

JQuery

$.get("test.php", function(data) {
  $.each(data, function(n, val) {
    alert(n + ': ' + val)
  });
}, "json");

Это результат :

0: [object Object]
1: [object Object]
2: [object Object]

Что я делаю не так?

Ответы [ 6 ]

5 голосов
/ 23 февраля 2011

Попробуйте:

alert(n + ': name = ' + val.name + ' time = ' + val.time);
2 голосов
/ 23 февраля 2011

Используйте console.log (data), чтобы прилично взглянуть на то, что находится внутри вашего JSON, из консоли в Firebug или Webkit.

Отличное руководство: http://jqueryfordesigners.com/debugging-tools/

2 голосов
/ 23 февраля 2011

Я не знаю php, но я думаю, вам нужно сделать это вместо этого, так как каждый val является объектом json.

$.get("test.php", function(data) {
  $.each(data, function(n, val) {
    alert(n + ': ' + val.name + ' ' + val.time)
  });
}, "json");

jsfiddle пример

1 голос
/ 23 февраля 2011

Технически, ничего. 'val' ссылается на объект, который, я подозреваю, не тот, который вы хотите. Вы, вероятно, хотите, чтобы значения хранились в каждом массиве. Таким образом, вместо предупреждения «val», вы, вероятно, захотите получить доступ к значениям ключа массива:

alert(n + ': ' + val.name + ' ' + val.time)
0 голосов
/ 20 сентября 2017

Используйте .getJSON.Попробуйте:

$.getJSON("test.php", function(data) {
     $.each(data, function(n, val) {
         alert(n + ': ' + val)
     });
});
0 голосов
/ 23 февраля 2011

в зависимости от вашего браузера, вы можете вызвать val.toSource(), который будет выводить содержимое объекта вместо его типа (что является поведением по умолчанию для .toString ())

хороший, сокращенный способ написать этоalert ([n, val.toSource() ]);

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...