2013-03-26 6 views
0

Я знаю, что есть много вопросов, связанных с этой темой, но я пробовал много их, но я все еще не могу получить значения.Значение undefined при декодировании json с jquery

Я использую firbug и я получаю правильный ответ, как: -

[{"id":4,"comments":1,"likes":5,"books":3,"name":"steve"}] 

Но я не в состоянии отобразить их на этой странице. Когда я пытаюсь выполнить alert (data.id), я получаю неопределенное значение в поле предупреждения. Вот мой код: -

$.ajax({ 
       type: "GET", 
       url: "getdata.php", 
       data: dataString, 
       dataType:"json", 
       success: function(data){ 
           alert(data.id); 

        } 
       }); 

Я попытался

$.each(data, function (key, element) { 
          alert(key); 
          alert(element); 
         }); 

Это показывает ключ как 0, но элемент как [объект Object] в окне предупреждения

+1

У вас есть массив, ' console.log (данные [0] .id) '. – undefined

+0

настроить скрипку для всех, чтобы играть с jsfiddle.net/pnYzq – Jack

+0

, и что, если на самом деле показывает firebug, это сам элемент? Так может быть, alert (element [0] .id) сделал бы трюк? – mnowotka

ответ

5

Это потому, что ваш ответ является массивом.

Либо сделать

success: function(data){ 
    alert(data[0].id); 
} 

или только возвращают объект

{"id":4,"comments":1,"likes":5,"books":3,"name":"steve"} 

или если вы хотите сохранить массив использовать each как таковой

$.each(data, function (key, element) { 
    alert(key); 
    alert(element.id); 
    alert(element.comments); 
    alert(element.likes); 
    ... 
}); 
+0

попробовал оба - все еще не определено –

+0

Что говорит отладчик, когда вы устанавливаете точку останова перед предупреждением? – Steve

+0

u средний разрыв; перед предупреждением (клавишей) - он говорит, что «немеченой разрыв должен быть внутри цикла или коммутатора» –

Смежные вопросы