我有一个函数可以获取包含对象的 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 对象数组实际上作为普通字符串传入,那么您确实需要
eval()
。
var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
要了解有关 JSON 的更多信息,请查看 MDN 网络文档:使用 JSON .
这是你的
dataArray
:
[
{
"id":28,
"Title":"Sweden"
},
{
"id":56,
"Title":"USA"
},
{
"id":89,
"Title":"England"
}
]
然后可以使用
parseJson
:
$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {
var ID = this.id;
var TITLE = this.Title;
});
“包含对象的 JSON 数组”我猜你的意思是包含 JSON 的字符串?
如果是这样,您可以使用 safe
var myArray = JSON.parse(myJSON)
方法(本机或使用 JSON2 包含),或 usafe var myArray = eval("(" + myJSON + ")")
。通常应避免评估,但如果您确定内容是安全的,那就没有问题。
之后,您只需像平常一样迭代数组即可。
for (var i = 0; i < myArray.length; i++) {
alert(myArray[i].Title);
}
你的问题感觉有点不完整,但我认为你正在寻找的是一种让你的代码可以访问 JSON 的方法:
如果你有上面的 JSON 字符串,那么你只需要这样做
var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');
然后你可以使用 jsonObj[0].id 等访问这些变量
如果这不是您想要的,请告诉我,我会尽力提供帮助。
M
@Swapnil Godambe 如果 JSON.stringfy 被删除,它对我有用。 那就是:
$(jQuery.parseJSON(dataArray)).each(function() {
var ID = this.id;
var TITLE = this.Title;
});
var datas = [{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}];
document.writeln("<table border = '1' width = 100 >");
document.writeln("<tr><td>No Id</td><td>Title</td></tr>");
for(var i=0;i<datas.length;i++){
document.writeln("<tr><td>"+datas[i].id+"</td><td>"+datas[i].Title+"</td></tr>");
}
document.writeln("</table>");
// Define a JSON array with objects
var employees = [ { "name": "John", "age": 30, "department": "Sales" }, { "name": "Emily", "age": 28, "department": "Marketing" }, { "name": "Michael", "age": 35, "department": "Finance" }];
// Accessing the objects in the array
console.log(employees[0].name); // Output: John
console.log(employees[1].age); // Output: 28
console.log(employees[2].department); // Output: Finance
如何在 JavaScript 中有效地使用 JSON 对象数组来存储和操作 Web 应用程序的数据?请告诉我。