0

这里有点困惑如何处理这个 JSON 对象。

var data = {
    "username": "Test",
    "rating": "none",
    "workers": {
        "Test.DesktopHome2": {
            "score": "2",
            "alive": true
        },
        "Test.M11x": {
            "score": "4",
            "alive": true
        }
    },
    "test2": "This is a Test"
    }

我可以很好地访问用户名、评级和 test2 字段,但是对于如何使用 JQuery 循环遍历“workers”有点困惑。我想在自己的表格行中显示每个工人,工人名称即“Test.DesktopHome2”作为表格中的第一列,然后是分数,并且还活着。$.each() 功能喜欢抛出错误。不确定如何在 for 循环中执行此操作,并且能够显示键名。

此代码引发“意外令牌”错误。

var $UserData = jQuery.parseJSON(data);
var $Workers = $UserData.workers;
$.each($Workers function(i, item) {
    //Do Stuff
});
4

3 回答 3

0

workers是一个对象(使用{})而不是一个数组(使用[])。

你可以像这样循环它:

for (var name in workers) {
  console.log(name); // e.g "Test.DesktopHome2"
  var worker = workers[name];
  console.log(worker.score); // e,g, "2" or "4"
}
于 2013-08-21T16:56:01.303 回答
0

使用for-in循环:

for (var key in obj.workers) {
    console.log('Worker: ' + key + ' Score: ' + obj.workers[key].score + obj.workers[key].alive ? ' Alive' : ' Dead');
}
于 2013-08-21T16:56:14.320 回答
0

或者,使用$.each()

$.each(json.workers, function(index) {
    $('#table').append('<tr><th>' + index + '</th><td>' + this.score + '</td></tr>');
});
于 2013-08-21T17:01:37.437 回答