2

JSON:

{
    dynamicname1: {
        0: "x",
        7: "y",
            ....
    },
    dynamicname2: {
        0: "xx",
        7: "yy",
        14: "zz",
            ...
    }
}

dynamicname1并且dynamicname2是为每个对服务器的请求(PHP)动态生成的。

我可以获得dynamicname每个时间请求和值的名称吗?

xmlhttp.onreadystatechange=function() {
    if (xmlhttp.readyState==4 && xmlhttp.status==200) {
        var data = JSON.parse(xmlhttp.responseText);
        // data[0].name; // i want to get name of variable
        $.each(data[0], function(){       
            alert(this);
        });
        $.each(data[1], function(){       
            alert(this);
        });
    }
}
4

2 回答 2

4

您可以使用for in循环来迭代对象的属性(键):

for(var key in data) {
    // key will be dynamicname1 in the first iteration, dynamicname2, etc
    console.log(data[key][0]); // x, xx, etc
}

或者,由于您似乎无论如何都在使用 jQuery,您可以使用 [ jQuery.each()][1] 来做同样的事情:

$.each(data, function(key, value) {
    // key would be dynamicname1, dynamicname2, etc
    // value would be the object that corresponds to that key, so equivalent to data[dynamicname1], etc
});
于 2013-04-03T09:39:19.050 回答
2

您可以使用以下方法检索您的动态名称Object.keys链接到 MDN):

xmlhttp.onreadystatechange=function() {

    if (xmlhttp.readyState==4 && xmlhttp.status==200) {

        var data = JSON.parse(xmlhttp.responseText);
        var keys = Object.keys(data); // keys = ["dynamicname1", "dynamicname2"]

        // do whatever you want with it...

    }
}
于 2013-04-03T09:45:11.353 回答