2016-09-01 1 views
1

Ich möchte zwei Eigenschaften-ID und ButtonId zu dem vorhandenen Json-Ergebnis hinzufügen. Ich habe den folgenden js-Code als Referenz eingefügt und ich möchte das jsonresult an MVC-Controller übergeben. Ab sofort gibt es null zurück. Bitte helfen Sie weiter. Vielen Dank.Eigenschaft dynamisch zum JSON-Array hinzufügen

mein letztes Ergebnis wie diese

json aussehen sollte { "Gruppen": { "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); 
 
     } 
 
     });

Dies ist das Ergebnis vor json result

Das json Ergebnis, wo die Eigenschaften und Id ButtonId in das mehrdimensionale Array drängen hinter eingesetzt ist. json result

Nullergebnis an die Steuerung weitergegeben controller

+0

'Daten: JSON.stringify (btnlist)' soweit ich weiß, gibt es keine Notwendigkeit, Ihre JSON stringify bevor zu einem MVC-Controller sendet. Das kann verwirrend sein. Just '' data: btnlist' und sehen, ob das funktioniert – ADyson

+0

@ADyson Ich habe versucht, Daten: btnlist, es gibt Parse Fehler zurück, und trifft nicht den Haltepunkt – user1221765

+0

Was sagt der Fehler genau? – ADyson

Antwort

0

Mit Hilfe meines Kollegen, die gewünschte Ausgabe ist als unten. Dies ist für andere Programmierer, die ein ähnliches Problem mit JSON-Array haben. Vielen Dank.

  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); 

Ausgabe auf Konsole

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

Verwandte Themen