Jquery数据检索使用json数据返回null

时间:2010-12-26 01:31:52

标签: jquery

我有以下示例json文件: {"jsonData":{"REC":[{"TEST":"T","TEST1":"T1","TEST2":"T2"},{"R":"R","R1":"R1","R3":"R3"}], "DATA":{"FIRST":0,"SEC":1}}}.

我想从json文件中检索数据,我尝试如下,但它给出了null。

来自结果对象的

:我正在检索如下数据:

要检索值T: this.jsonData.REC.TEST

要检索值R1: this.jsonData.DATA.FIRST

如果我做错了,请纠正我。

先谢谢。

3 个答案:

答案 0 :(得分:1)

没有REC键有一个Object数组,所以它应该是:
对于值T:json.jsonData.REC[0].TEST
对于值R1:json.jsonData.REC[1].R1
Example Link
P.S:下次请使用代码标签,节日快乐! :)

答案 1 :(得分:0)

您应该使用getJSON方法在Ajax响应中解析此问题,或者如果使用Ajax,则应使用dataType作为json。在成功回调中,可以通过响应对象访问已解析的json结果。所以你应该使用像resp.jsonData.REC [0]这样的东西。测试不要使用它。

答案 2 :(得分:0)

如果json文件没有将对象分配给变量,那么我能想到的唯一方法是使用Ajax查询来读取文件的内容并按如下方式处理对象:

<强> jQuery的:

$.getJSON("<PATH_TO_YOUR_JSONFILE>",
        function(data){
          alert(jsonObj.jsonData.REC.TEST);     
                    alert(jsonObj.jsonData.DATA.FIRST);
        });

使用纯js:

var jsonObj = {};
if (window.XMLHttpRequest)
{// code for IE7+, Firefox, Chrome, Opera, Safari
xmlhttp=new XMLHttpRequest();
}
else
{// code for IE6, IE5
xmlhttp=new ActiveXObject("Microsoft.XMLHTTP");
}

xmlhttp.onreadystatechange=function()
  {
        if (xmlhttp.readyState==4 && xmlhttp.status==200)
    {
            eval("jsonObj = " + xmlhttp.responseText);
            checkJson();
    }
  }
xmlhttp.open("GET","<PATH_TO_YOUR_JSONFILE>",true);
xmlhttp.send();

function checkJson()
{
    alert(jsonObj.jsonData.REC.TEST);
    alert(jsonObj.jsonData.DATA.FIRST);
}