我想将两个属性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);
}
});

答案 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);
控制台上的输出