无法访问$ .getJSON返回的数据

时间:2014-02-06 09:34:10

标签: javascript jquery json getjson

我使用jquery的$ .getJSON来从服务器获取我需要的数据。 这是它的样子:

$.getJSON("/dataParser/parseVoltage",function(jsondata, status)
{
    if (status == "error") {
    console.log("Error encountered while getting the data from server.");
    }
    else if (status == "success") 
    {
        alert(jsondata.constructor.name + " array : " + $.parseJSON(jsondata));
        console.log(jsondata);
        for(i= 0; i< jsondata.length; i++)
        {
            console.log(jsondata[i]);
        }               
    }
});

将来自服务器的json字符串由C生成。所以基本上,strng看起来像这样..

render("[{\"y-data\":0, \"x-data\":2.513},{\"y-data\":1, \"x-data\":3.038},{\"y-data\":2, \"x-data\":12.625}]");

因为我假设我将获得一个json格式的文件,我试过这个

  

$ parseJSON(jsondata)。但输出 null

我也试过这个:

  

jsondata.constructor.name输出为数组

当我尝试记录数据时,这就是结果

console.log(jsondata) .. output is [object Object],[object Object],[object Object],[object Object],[object Object],[object Object]

当我尝试使用for循环打印所有数据时,这就是结果

for(i= 0; i< jsondata.length; i++)
{
alert("arraydata" + i + " " + jsondata[i]);
}

the result is 
arraydata0 [object Object]
arraydata1 [object Object]
arraydata2 [object Object]
arraydata3 [object Object]
...

当我检查服务器的响应到底是什么时,这就是结果..

[{"y-data":0, "x-data":2.513},{"y-data":1, "x-data":3.038},{"y-data":2, "x-data":12.625},{"y-data":3, "x-data":1.24},{"y-data":4, "x-data":1.013},{"y-data":5, "x-data":3.317}]

现在,我如何访问/阅读此类数据?

1 个答案:

答案 0 :(得分:2)

你可以轻松访问json:

jQuery.each(jsondata, function() {
  alert(this['y-data'] + ' - ' + this['x-data']);
});

或直接:

alert(jsondata[0]['y-data']);