2

JSON:

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

dynamicname1dynamicname2サーバー (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を使用しているように見えるので、 [ ][1] を使用できますjQuery.each()。これはほとんど同じことを行います:

$.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 に答える