通过 javascript 将 JSON 数组与对象一起使用

问题描述 投票:0回答:8

我有一个函数可以获取包含对象的 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
}

有什么建议我可以解决吗?

javascript json
8个回答
73
投票

这不是单个 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 .


17
投票

这是你的

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;
});

7
投票

“包含对象的 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);
}

4
投票

你的问题感觉有点不完整,但我认为你正在寻找的是一种让你的代码可以访问 JSON 的方法:

如果你有上面的 JSON 字符串,那么你只需要这样做

var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');

然后你可以使用 jsonObj[0].id 等访问这些变量

如果这不是您想要的,请告诉我,我会尽力提供帮助。

M


2
投票

@Swapnil Godambe 如果 JSON.stringfy 被删除,它对我有用。 那就是:

$(jQuery.parseJSON(dataArray)).each(function() {  
    var ID = this.id;
    var TITLE = this.Title;
});

0
投票

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>");


0
投票

// 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
Json 完整形式或什么是 Json


0
投票

如何在 JavaScript 中有效地使用 JSON 对象数组来存储和操作 Web 应用程序的数据?请告诉我

© www.soinside.com 2019 - 2024. All rights reserved.