将 属性 动态添加到 JSON 数组

Add Property dynamically to the JSON array

我想将两个 属性 Id 和 ButtonId 添加到现有的 json 结果中。我粘贴了下面的 js 代码以供参考,我想将 json 结果传递给 MVC 控制器。截至目前,它 returns 为空。请帮助继续。谢谢。

我的最终结果应该是这样的

json{"Groups":{"Id":"2","ButtonId":"1142","1186","1189"}, {"Id":"3","ButtonId":"1171","1173","1174","1175","1176","1187"}, {"Id":"4","ButtonId":"1177","1178","1179"}} etc..

 var btnlist = {Groups: {Id:"", ButtonId: ""}};                
  $.each($(".buttonData"), function (index, value) {
   var values = value.id.split(':');                            
   grpid = values[0].split('-')[1];
   btnid = values[1].split('-')[1];
   
    console.log('grpid=' + grpid + ' btnid=' + btnid);

    if (typeof (btnlist['Groups'][grpid]) == 'undefined') {
        btnlist['Groups'][grpid] = [];
      }      
        btnlist['Groups'][grpid].push(btnid);    
    });    

  $.ajax({
        type: "POST",
        url: "@Url.Action("Home", "Menu")",
        dataType: "json",
        contentType: "application/json; charset=utf-8",
        data: JSON.stringify(btnlist) ,        
        success: function (result) {        
        console.log('json' + JSON.stringify(btnlist));
        console.debug(result);
        },
        error: function (request, error) {      
        console.debug(error);
         }
      });

这是推入多维数组前的json结果

json结果,其中属性Id和ButtonId被插入到后面。

传递给控制器​​的结果为空

在我同事的帮助下,期望的输出如下。这适用于面临与 JSON 数组类似问题的其他程序员。谢谢。

         var btnlist = [];
              btngrps = $('.btn-sort-container');
              $.each(btngrps, function(k, v) {
                btnarr = {};

                gid = $(this).attr('id');
                grpid = gid.split('-')[1];
                btnarr.Id = gid.split('-')[1];

                btnobjs = $(v).find('.buttonData');
                if (btnobjs.length) {
                  btnarr['btnId'] = [];
                  $.each(btnobjs, function(bk, bv) {

                    btnid = $(bv).attr('id').split('-')[2];

                    btnarr['btnId'].push($(bv).attr('id').split('-')[2]);

                  });
                  console.debug(btnarr);
                  btnlist.push(btnarr);
                }
              });
              console.debug(btnlist);

控制台输出

: http://i.stack.imgur.com/oJ3Dy.png