Как пройти через мой ответ Json, используя jQuery? - PullRequest
1 голос
/ 30 июля 2009

Мой ответ Json выглядит так:

[{"UserID": 1}, {"UserID", 324}]

Я звоню на страницу, чтобы получить JSON, как:

$.get("myurl.aspx", {blah:1}, function(data) {

       $.each(data.items, function(i, item) {
             alert(item.UserID);

       });

});

Firebug сообщает об ошибке:

G не определено.

Ответы [ 5 ]

6 голосов
/ 30 июля 2009

Я думаю, что вы хотите это вместо этого, так как ваша переменная данных не имеет свойства с именем items:

$.each(data, function(i, item) {
     alert(item.UserID);
});
2 голосов
/ 30 июля 2009

Не забудьте передать параметр типа данных в get, чтобы он знал, ожидать JSON, или использовать getJSON вместо.

2 голосов
/ 30 июля 2009

Похоже, ваш ответ не является истинным объектом JSON. Обратите внимание, что в вашем ответе вместо запятой есть запятая.

Если это просто опечатка, проверьте запрос и ответ в консоли Firebug (на вкладке «Сеть»), чтобы увидеть, какие данные отправляются на страницу myurl.aspx. Вы должны увидеть свой запрос AJAX, а также данные, которые отправляются обратно на вашу страницу.

1 голос
/ 30 июля 2009

По умолчанию ASP.Net инкапсулирует объект JSON в другой объект с именем 'd'. Ваш ответ будет выглядеть так:

{"d": [{"UserID": 1}, {"UserID": 324}]}

Попробуйте это:

$.get("myurl.aspx", {blah:1}, function(data) {

   $.each(data.d, function(i, item) {
         alert(item.UserID);
   });
});

Проверьте эту ссылку для рассуждений Microsoft (внизу страницы.)

1 голос
/ 30 июля 2009

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

[{"UserID": 1}, {"UserID", 324}]

Обратите внимание на запятую на втором идентификаторе пользователя.

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