解析服务器的JSON响应时出现问题

时间:2009-11-10 19:18:40

标签: jquery json

我正在向服务器发送一个帖子请求并获取我想要的数据数组,但我看不到访问各个元素,我无法弄清楚原因。

这是它的主旨

$(document).ready(function() {
  $.post("myscript", { Action: "JQueryReq",  },
  function(data){
   alert(data);
  });
});

如果我执行上述操作,我会收到我想要的所有内容,它看起来像这样(在JS对话框中)

[{"val1":null,"val2":null,"val3":null,"Size":"Inches","valu4":null}]

但如果我改变

alert(data);

alert(data.Size);

我得到“未定义”

我也试过

var myjsonreturn = eval(data);
alert(myjsonreturn.Size);

我也试过

var myjsonreturn = eval('('+data+')');
alert(myjsonreturn.Size);

每次我都未定义。

我做错了什么?

TIA

3 个答案:

答案 0 :(得分:1)

什么是data?它是一个字符串?如果是这样,您想使用:

eval('('+data+')')[0].Size;

答案 1 :(得分:0)

试过这个?

alert(data[0].Size)

答案 2 :(得分:0)

作为JSON响应,您获得的是仅包含一个单元格的数组。由于数组的长度为1,索引将从数字0开始,因此您可以访问如下内容:

alert(data[0].Size);

或者,如果你想用jQuery的.each()循环遍历这些值:

$.each(data[0], function(index, value){
    alert(index + ':' + value);
});