【问题标题】:Retrieving names of high level JSON arrays with jQuery/JS使用 jQuery/JS 检索高级 JSON 数组的名称
【发布时间】:2009-12-15 16:38:56
【问题描述】:

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

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

【问题讨论】:

    标签: jquery json object


    【解决方案1】:
    var json = ... //something which gets you the json data
    for (var listname in json)
        alert(listname)
    

    在这种情况下会显示两个警报,分别是“list1”和“list2”。

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

    并动态创建两个选择

    http://jsbin.com/azeha

    【讨论】:

      【解决方案2】:

      您在此处显示的 JSON 密钥对类似于带有 JSON 对象引用列表的 Map,即“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。希望能帮助到你。

      【讨论】:

        猜你喜欢
        • 2018-01-16
        • 2021-09-16
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多