将属性动态添加到JSON数组

时间:2016-09-01 15:04:29

标签: javascript json jquery-ui jsonresult

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

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

  

JSON {"组" {"标识":" 2"" ButtonId":" 1142" " 1186"" 1189"},   {"标识":" 3"" ButtonId":" 1171"" 1173"" 1174"" 1175"" 1176"" 1187"},   {"标识":" 4"" ButtonId":" 1177"" 1178"" 1179"}}等等。



 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结果 result

json结果,后面插入属性Id和ButtonId。 json result

将null结果传递给控制器 controller

1 个答案:

答案 0 :(得分:0)

在我的同事的帮助下,所需的输出如下。这适用于面临与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