我有一个将获取带有对象的JSON数组的函数。在函数中,我将能够遍历数组,访问属性并使用该属性。像这样:

我将传递给该函数的变量如下所示:

[{
  "id": 28,
  "Title": "Sweden"
}, {
  "id": 56,
  "Title": "USA"
}, {
  "id": 89,
  "Title": "England"
}]

function test(myJSON) {
  // maybe parse my the JSON variable?
  // and then I want to loop through it and access my IDs and my titles
}

有什么建议可以解决吗?

最佳答案

这不是单个JSON对象。您有一个JSON对象数组。您需要先遍历数组,然后访问每个对象。以下启动示例可能会有所帮助:

var arrayOfObjects = [{
  "id": 28,
  "Title": "Sweden"
}, {
  "id": 56,
  "Title": "USA"
}, {
  "id": 89,
  "Title": "England"
}];

for (var i = 0; i < arrayOfObjects.length; i++) {
  var object = arrayOfObjects[i];
  for (var property in object) {
    alert('item ' + i + ': ' + property + '=' + object[property]);
  }
  // If property names are known beforehand, you can also just do e.g.
  // alert(object.id + ',' + object.Title);
}
如果JSON对象数组实际上是作为普通 Vanilla 字符串传递的,那么您实际上确实需要eval()
var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
要了解有关JSON的更多信息,请检查MDN web docs: Working with JSON

10-05 21:05
查看更多