2013-05-18 64 views
-4

我得到通过$.get的回应是:JSON解析,总是返回undefined

{ 
    "data": [ 
     { 
     "uid": 12345678, 
     "online_presence": "offline" 
     } 
    ] 
} 

我也试过$.getJSON但没有运气。我的代码的一部分(数据变量保存上述回应):

var zzz=JSON.stringify(data) 
var obj = jQuery.parseJSON(zzz); 
alert(Object.keys(obj).length); 

回报1.然而,Chrome的调试器说,有作为obj[0].uidobj[1].uid没有这样的事情。为什么我无法访问uid或online_presence?

+2

实际上,'obj.data [0] .uid'。当然,对于'data'属性,'Object.keys(obj).length'等于1。 – raina77ow

+0

似乎工作http://jsfiddle.net/fy5uk/ –

+0

没有必要使用任何这些功能 - 只使用getJSON,如果它是相同的原点,data.data [0] .uid – mplungjan

回答

0

试试这个:

alert(obj.data[0].uid); 
0

您不能访问对象的属性,如数组,因为键不下令整数。

您必须明确使用属性键,例如

console.log(obj.data[0].uid);

如果你可以登录obj那么你知道它存在。

1

用途:

JSON.parse(data); 

或使用您的要求具体的数据类型选项; jQuery会将它转换为你

$.get('yoururl',function(o) { alert(o.data[0].uid); },'json'});