【问题标题】:How to iterate json object string?如何迭代json对象字符串?
【发布时间】:2013-08-16 10:18:02
【问题描述】:

我的JsonResult如下

[{"name":"Group 1"},{"name":"Group 2"},{"name":"Group 3"}]

我在编写for循环时有点困惑,那么如何在jqGrid的editoptions中迭代这个或在buildSelect函数中获取name的值?我在 jqGrid 中的 colModel 代码如下

 { name: 'GroupName', index: 'GroupName', width: 60, align: 'center', search: false, editable: true, edittype: 'select',
   editoptions: {
                 dataUrl: "/Category/GetCategoryGroup",
                 buildSelect: function (response) {
                                  if (response && response.length) {
                                        // for loop iteration to get name values           
                                  }                                                 
                            }                                          
                 } 
 },

【问题讨论】:

标签: javascript json jqgrid


【解决方案1】:
var groups = [{"name":"Group 1"},{"name":"Group 2"},{"name":"Group 3"}];
for(var i = 0; i< groups.length; i++) {
 var name = groups[i].name;
}

【讨论】:

    【解决方案2】:

    和数组一样

    var myOb = [{"name":"Group 1"},{"name":"Group 2"},{"name":"Group 3"}] ; 
    
    for (var i=0; i < myOb.length; i++) { 
     console.log(myOb[i]);
     console.log(myOb[i].name);
     console.log(myOb[i]['name']);
    }
    

    您可以进一步循环进入编辑选项

    【讨论】:

      【解决方案3】:
       if (response && response.length) {
          var contents='<select>';
          for(var i=0; i< response.length; i++){
              var t = response[i];
              var g_name = t.name;
              contents+="<option>"+g_name+"</option>";
          }
         contents+="</select>";
         document.getElementById("contentDropdown").innerHTML = contents; 
      }
      

      在你想显示下拉列表的地方创建一个像这样的 div:

      <div id="contentDropdown"></div>
      

      希望这会对你有所帮助。

      【讨论】:

      • 您不应该使用for...in 来遍历数组。 stackoverflow.com/questions/2265167/…
      • @komal:抱歉,这在 jqGrid 的 buildSelect 中不起作用。我必须在 jqGrid(表单编辑)的下拉列表中显示这三个组
      【解决方案4】:

      另一种迭代数组的方法

      var groups = [{"name":"Group 1"},{"name":"Group 2"},{"name":"Group 3"}]; 
      
      $.each( groups, function() {
          alert(this.name);
      });
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-28
        • 2017-05-21
        • 2019-07-21
        • 1970-01-01
        • 2015-12-21
        • 2021-01-13
        • 1970-01-01
        • 2016-01-25
        相关资源
        最近更新 更多