我有一个将获取带有对象的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。