将JSON数组与javascript对象一起使用
我有一个函数,它将获得一个包含对象的JSON数组。在函数中,我将能够在数组中循环,访问属性并使用该属性。像这样: 我将传递给函数的变量如下所示:将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? /
[{
"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)
方法(本机方法或包括使用),或者usafevar 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;
});