在 jquery 中迭代 JSON 对象
声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow
原文地址: http://stackoverflow.com/questions/17186333/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me):
StackOverFlow
Iterating over JSON object in jquery
提问by Gautam
I have a json object as
我有一个 json 对象作为
[
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"},
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"False"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"True"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"False"}
]
What I need is to create 2 drop downs from this object as
我需要的是从此对象创建 2 个下拉列表作为
Answer Number 1 -> True/False
答案编号 1 -> 对/错
Answer Number 2 -> True/False
答案 2 -> 对/错
dropdown part I'll do my self.. I m just confused on how to iterate over this object. Can any1 please lead me to some example?
下拉部分我会自己做。我只是对如何迭代这个对象感到困惑。任何人都可以请我举一些例子吗?
回答by TCHdvlp
your json objects jsonObject
are stored in an array. Do :
您的 json 对象jsonObject
存储在一个数组中。做 :
$.each(jsonArray, function(index,jsonObject){
$.each(jsonObject, function(key,val){
console.log("key : "+key+" ; value : "+val);
});
});
it will gives you
它会给你
key : DisplayName ; value : Answer Number 1
key : Value ; value : Answer 1
key : Option ; value : true
Anyway, Anthony is right. Your structure will be difficult to manipulate
不管怎样,安东尼是对的。您的结构将难以操纵
回答by LMeyer
Your JSON isn't valid. What about this :
您的 JSON 无效。那这个呢 :
var json = '[
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"},
{"DisplayName":"Answer Number 1","Value":"Answer1","Option":"False"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"True"},
{"DisplayName":"Answer Number 2","Value":"Answer2","Option":"False"}
]';
var jsonObject = $.parseJSON(json); //Only if not already an object
$.each(jsonObject, function (i, obj) {
alert(obj.DisplayName);
});
回答by Petr Vostrel
Use jQuery.each()
$.each( yourArrayOfObjects, function( index, object ){
// do your magic here
});
回答by Atif Mohammed Ameenuddin
var json = [{
"DisplayName": "Answer Number 1",
"Value": "Answer1",
"Option": "True"
}, {
"DisplayName": "Answer Number 1",
"Value": "Answer1",
"Option": "False"
}, {
"DisplayName": "Answer Number 2",
"Value": "Answer2",
"Option": "True"
}, {
"DisplayName": "Answer Number 2",
"Value": "Answer2",
"Option": "False"
}];
To iterate
迭代
for (i in json) {
//json[i] is your current object inside the array, {"DisplayName":"Answer Number 1","Value":"Answer1","Option":"True"}
for (key in json[i]) {
// keys are DisplayName, Value, Option
alert(key);
alert(json[i][key]); // instead of writing object.key you can also write object[key]
}
}