如何使用Ajax调用获取JSON数组

时间:2013-09-20 10:30:06

标签: jquery ajax json

我有这个Json:

{
"version": "firstVersion",
"numberID": "3",
"totalIDs": [
    {
        "1": {
            "subTot": "2",
            "subTotID": {
                "1": "aaa",
                "2": "bbb"
            }
        },
        "2": {
            "subTot": "2",
            "subTotID": {
                "1": "www",
                "2": "rrr"
            }
        }
    }
  ]
}

我知道如何获取version,numberID的值,但是当我尝试向下钻取以获取totalIDs> 1> subTot>价值,我不知道怎么做。

这里是ajax电话:

$.ajax({
    url: url,
    type: "GET",
    dataType: 'json',
    success: function (data) {
        console.log(data.version);
        console.log(data.numberID);
        console.log(data.totalIDs); // problem is here, I don't know how to drill down further
    }
});

非常感谢任何帮助。提前致谢。 约翰

3 个答案:

答案 0 :(得分:0)

如果您尝试获取特定的ID,请尝试

 data.totalIDs[0].subTot or data.totalIDs[1].subTotID[0]

或者你可以循环

 for(var i=0;i<data.totalIDs.length;i++)
 {
    console.log(data.totalIDs[i].subTot); 
    //another loop for subTotID
    for(var j=0;j<data.totalIDs[i].subTotID.length;j++)
    {
        console.log(data.totalIDs[i].subTotID[j]); 
    } 
 }

答案 1 :(得分:0)

totalIDs是一个只有一个元素,一个结构的数组。

该结构有两个用“1”和“2”索引的元素。

因此,您必须包含数组和结构的引用。

data.totalIDs[0]["1"].subTot

答案 2 :(得分:0)

你可以这样做:

$.ajax({
url: url,
type: "GET",
dataType: 'json',
success: function (data) {
    console.log(data.version);
    console.log(data.numberID);

    var length = data.totalIDs.length;
    for(i=0;i<length ;i++)
    {
      console.log(data.totalIDs[i]);
    }
});