使用jQuery / JS检索高级JSON数组的名称

时间:2009-12-15 16:38:57

标签: jquery json object

我正在处理具有多组键值对的JSON数据 - 每组都构成一个列表。在下面的简化示例中,事先不知道列表名称 - 实际上我需要使用每个列表的名称填充页面上的选择下拉列表。在这种情况下如何检索集名称?

({
 "list1": 
 [{
     "prodRating": "5",
     "prodReviews": "21"
 },
        {
     "prodRating": "5",
     "prodReviews": "21"
 }],
 "list2": 
 [{
     "prodRating": "5",
     "prodReviews": "21"
 },
        {
     "prodRating": "5",
     "prodReviews": "21"
 }]
})

2 个答案:

答案 0 :(得分:0)

var json = ... //something which gets you the json data
for (var listname in json)
    alert(listname)

在这种情况下会显示两个警告“list1”和“list2”。

这里有一个小样本页面,它迭代一个像你这样构建的对象,但“标签”不必知道。

动态创建两个选择

http://jsbin.com/azeha

答案 1 :(得分:0)

您在此处显示的JSON密钥对就像是按键映射JSON对象列表,“listX”。您可以使用键值迭代它们:

var test = {"list1": 
                 [{
                     "prodRating": "5",
                     "prodReviews": "21"
                 },
                        {
                     "prodRating": "5",
                     "prodReviews": "21"
                 }],
                 "list2": 
                 [{
                     "prodRating": "5",
                     "prodReviews": "21"
                 },
                        {
                     "prodRating": "5",
                     "prodReviews": "21"
                 }]
                };
    for (var i in test){
        console.log("Key: "+ i); 
        for(var j in test[i]){
            var something = test[i][j]; 
            console.log("Rating: " + something.prodRating + " Reviews: " + something.prodReviews); 
        }
    }

不确定如何布置下拉菜单。但是你可以使用jquery的html()来生成html。希望能帮助到你。