2013-03-26 73 views
0

我知道已经有很多与这个主题有关的问题,但我尝试了很多,但我仍然无法获得值。value undefined while jquery json解码

我使用firbug和我得到的正确的反应: -

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

但我不能够在网页上显示它们。当我尝试alert(data.id)时,我在alert框中得到了undefined。这里是我的代码: -

$.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); 
         }); 

这显示提示框

+1

您有一个数组,'的console.log(数据[0] .ID)'。 – undefined 2013-03-26 21:36:28

+0

设置了一个小提琴给大家玩jsfiddle.net/pnYzq – Jack 2013-03-26 22:00:08

+0

以及如果萤火虫真正显示的是元素本身?所以也许alert(元素[0] .id)会做的伎俩? – mnowotka 2013-03-26 22:05:46

回答

5

这是因为你的反应是一个数组键为0,但元素[对象的对象。

要么做

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

尝试了两种 - 仍未定义 – 2013-03-26 21:44:26

+0

当您在警报之前设置断点时,调试器告诉您什么? – Steve 2013-03-26 21:45:37

+0

你意味着打破;警报之前(键) - 它说“未标记的中断必须在循环或开关内” – 2013-03-26 21:55:09