2016-10-18 2 views
0

Hallo Ich versuche das "DataManipulation" Beispiel von jsGrid Demos zu ändern und ich kann nicht Daten aus einer JSON-Datei zeigen, die mit einem GET Ajax Aufruf abgerufen wurde. Hier ist mein Controller-Code:JSGrid Zeige keine Daten von JSON

{ 
       loadData: function (filter) { 
        var data = $.Deferred(); 
       $.ajax({ 
        type: "GET", 
        contentType: "application/json", 
        url: "myFileURL.json", 

        dataType: "json" 
        }).done(function(response){ 
        console.log(response); 
        data.resolve(response); 
       }); 
        return data.promise();} 

Die json retrived ist wie dieser

{"98762":{"Address":"Address 1","Age":1,"Country":1,"Married":false,"Name":"Name1"},"637399":{"Address":"Address 2","Age":2,"Country":2,"Married":true,"Name":"Name 2"},"234567554":{"Address":"Address 3","Age":3,"Country":3,"Married":true,"Name":"Name"}} 

Antwort

1

Ihre json nicht gut ausgebildet ist. jsGrid erwartet eine Liste von Objekten als Rückgabetyp. Benutze das stattdessen.

[ 
    { 
     "Address": "Address 1", 
     "Age": 1, 
     "Country": 1, 
     "Married": false, 
     "Name": "Name1" 
    }, 
    { 
     "Address": "Address 2", 
     "Age": 2, 
     "Country": 2, 
     "Married": true, 
     "Name": "Name 2" 
    }, 
    { 
     "Address": "Address 3", 
     "Age": 3, 
     "Country": 3, 
     "Married": true, 
     "Name": "Name" 
    } 
]; 

Dies ist mit der Annahme, dass das Schema der Json korrekt ist. Viel Glück!

+0

Ok Ich verstehe das, aber wie kann ich die JSOn-Datei formatieren, die der Server mir gibt? Angenommen, ich kann nicht ändern, wie der Server mir Daten sendet – jack87

+0

@ jack87: da Sie eine Antwort haben, können Sie auf dem Client tun, was immer Sie brauchen. Tun Sie einfach '$ .map', um es in das richtige Format zu konvertieren. – tabalin