使用JSON数组与对象与JavaScript
我有一个函数,将获得与对象的JSON数组。在函数中,我将能够遍历数组,访问一个属性并使用该属性。就像这样:使用JSON数组与对象与JavaScript
变量,我将传递给函数看起来就像这样:
[{"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 array containing objects'我猜你的意思是一个包含JSON的字符串?
如果是这样,您可以使用安全var myArray = JSON.parse(myJSON)
方法(本机或包括使用JSON2)或美国国家安全局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等
让我知道这是你和I'l都拿到不算什么我会尽力帮忙
M
你不应该使用eval()来解析JSON,你知道吗?使用JSON.parse()。 – jpangamarca 2015-06-15 14:55:51
^因为使用'eval()'你更脆弱,因为JS函数接受所有JS表达式(https://stackoverflow.com/questions/1843343/json-parse-vs-eval) – Remi 2017-12-12 16:41:30
这不是一个单一的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,检查this article。
更新:如果JSON对象数组实际传递在为一个普通的字符串,那么你的确会需要eval()
这里。
var string = '[{"id":28,"Title":"Sweden"}, {"id":56,"Title":"USA"}, {"id":89,"Title":"England"}]';
var arrayOfObjects = eval(string);
// ...
记住'if(object.hasOwnProperty (...' – 2010-05-09 21:47:49
+ 1 for eval()更新,浪费了很多时间没有意识到我需要将字符串转换为对象 – 2012-05-14 16:43:02
@PeadarDoyle:不客气,请确保该字符串不包含用户或者你可能会冒JS代码注入的风险,但最好从一开始就传入一个完整的JS对象,即删除围绕字符串的引号(如果有的话) – BalusC 2012-05-14 16:48:58
这是您的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;
});
@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>");
的问题不明确。提供更准确和描述性的代码。 – 2010-05-09 21:39:50