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

将JSON数组与javascript对象一起使用,javascript,json,Javascript,Json,我有一个函数,它将获得一个包含对象的JSON数组。在函数中,我将能够在数组中循环,访问属性并使用该属性。像这样: 我将传递给函数的变量如下所示: [{ "id": 28, "Title": "Sweden" }, { "id": 56, "Title": "USA" }, { "id": 89, "Title": "England" }] function test(myJSON) { // maybe parse my the JSON variable? /

我有一个函数,它将获得一个包含对象的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的字符串吧

如果是这样,您可以使用safe
var myArray=JSON.parse(myJSON)
方法(本机方法或包括使用),或者usafe
var myArray=eval(“(“+myJSON+”)”)
。通常应该避免使用eval,但是如果您确定内容是安全的,那么就没有问题

之后,您只需像平常一样迭代数组

for (var i = 0; i < myArray.length; i++) {
    alert(myArray[i].Title);
}
for(var i=0;i
您的问题感觉有点不完整,但我认为您需要的是一种让您的代码可以访问JSON的方法:

如果您有如上所述的JSON字符串,那么您只需要这样做

var jsonObj = eval('[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]');
然后可以使用类似于jsonObj[0].id等的东西访问这些变量

如果这不是你想要的,请告诉我,我会尽力帮助你


这不是一个单一的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的信息,请查看。

这是您的
数据数组:

[
   {
      "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.stringfy,它对我有效。 即:

var数据=[{“id”:28,“Title”:“Sweden”},{“id”:56,“Title”:“USA”},{“id”:89,“Title”:“England”}];
文件。书面形式(“”);
书面文件(“无ID名称”);

对于(var i=0;问题不清楚。请提供更准确、更具描述性的代码。请记住
if(object.hasOwnProperty(…
+1 for eval())更新,浪费了太多时间没有意识到我需要将字符串转换为对象。@Peadardoye:不客气。请确保此字符串不包含用户控制的数据,否则可能会有JS代码注入的风险。但最好从一开始就传入一个完整的JS对象。例如,删除字符串周围的引号string-如果有的话。+1 bra。我正在寻找一种方法来获取引导multi-select的Ajax响应字符串。这个变量arrayOfObjects=eval(string);trickYou是否不应该使用eval()解析JSON,你知道吗?使用JSON.parse()。^因为使用
eval()
你更容易受到攻击,因为JS函数接受所有JS表达式()
$(jQuery.parseJSON(JSON.stringify(dataArray))).each(function() {  
    var ID = this.id;
    var TITLE = this.Title;
});
$(jQuery.parseJSON(dataArray)).each(function() {  
    var ID = this.id;
    var TITLE = this.Title;
});