2017-03-14 3 views
-1

Wie man ein JSON-Array mit $ .each() iteriert. Meine Beispieldaten sind dynamisch und ändern sich basierend auf den Daten, die vom Server analysiert werden. Also mein Plan, die Daten wie auf dem Bild zu formatieren, aber ich verstehe es nicht. Ich benutze Javascript, das richtig funktioniert, aber ich muss stattdessen jQuery Ajax verwenden.

enter image description here

<script> 
     var columns = { 
      "data": [ 
       [ 
        "ID", 
        "TYPE", 
        "TOTAL", 
        "1 bed room", 
        "2 bed room" 
       ] 
      ] 
     }; 

     var testdata = { 
      "data": [ 
       [ 
        "100", 
        "Total Transaction Amount", 
        "9812355000", 
        "23397000", 
        "13976000" 
       ], 
       [ 
        "100", 
        "No. of units", 
        "1268", 
        "3", 
        "2" 
       ], 
       [ 
        "100", 
        "(Total sq.ft.)", 
        "", 
        "", 
        "" 
       ], 
       [ 
        "100", 
        "Avg. price", 
        "7738450", 
        "7799000", 
        "6988000" 
       ], 
       [ 
        "100", 
        "Avg. sq.ft.", 
        "", 
        "", 
        "" 
       ], 
       [ 
        "100", 
        "Max. price", 
        "25494000", 
        "9918000", 
        "7318000" 
       ], 
       [ 
        "100", 
        "Max. sq.ft", 
        "", 
        "", 
        "" 
       ], 
       [ 
        "100", 
        "Min. price", 
        "5904000", 
        "6465000", 
        "6658000" 
       ], 
       [ 
        "100", 
        "Min. sq.ft", 
        "", 
        "", 
        "" 
       ] 
      ] 
     }; 

     var dynamicColumn = "", dynamicHeader = ""; 
     dynamicHeader += "<tr>"; 
     for (i = 0; i < columns.data[0].length; i++) { 
      dynamicHeader += "<td>" + columns.data[0][i] + "</td>"; 
      console.log(columns.data[i]); 
     } 
     dynamicHeader += "</tr>"; 
     console.log(dynamicHeader); 

     for (i = 0; i < testdata.data.length; i++) { 
      var row = testdata.data[i]; 
      console.log(testdata.data[i]); 
      dynamicColumn += "<tr>"; 

      for (ii = 0; ii < row.length; ii++) { 
       dynamicColumn += "<td>" + (row[ii] === "" ? "0" : row[ii]) + "</td>"; 
       console.log(row); 
      } 

      dynamicColumn += "</tr>"; 
     } 

     $('#thead').html(dynamicHeader); 
     $('#tbody').html(dynamicColumn); 

    </script> 

Während des Tests oder Beispiel zu tun.

$.each(data, 
         function (key, value) { 
          console.log(key); 
          console.log(value[0]); 
          console.log(value[1]); 
          console.log(value[2]); 
          console.log(value[3]); 
          console.log(value[4]); 
         }); 
+0

Mögliches Duplikat [JQuery $ .each() JSON-Array-Objekt Iteration] (http://stackoverflow.com/questions/6298599/jquery-each-json-array-objekt-iteration) –

+0

'$ .each (Daten, ...' Sie haben nicht einmal eine Variable namens 'data' – Weedoze

+1

Es gibt keine solche Sache wie ein [" JSON-Array "] (http://benalman.com/news/2010/03/theres-no-such-thing-as-a-json/). –

Antwort

1

Siehe Beispiel unten mit Ihren Daten

var testdata = { 
 
    "data": [ 
 
    [ 
 
     "100", 
 
     "Total Transaction Amount", 
 
     "9812355000", 
 
     "23397000", 
 
     "13976000" 
 
    ], 
 
    [ 
 
     "100", 
 
     "No. of units", 
 
     "1268", 
 
     "3", 
 
     "2" 
 
    ], 
 
    [ 
 
     "100", 
 
     "(Total sq.ft.)", 
 
     "", 
 
     "", 
 
     "" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Avg. price", 
 
     "7738450", 
 
     "7799000", 
 
     "6988000" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Avg. sq.ft.", 
 
     "", 
 
     "", 
 
     "" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Max. price", 
 
     "25494000", 
 
     "9918000", 
 
     "7318000" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Max. sq.ft", 
 
     "", 
 
     "", 
 
     "" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Min. price", 
 
     "5904000", 
 
     "6465000", 
 
     "6658000" 
 
    ], 
 
    [ 
 
     "100", 
 
     "Min. sq.ft", 
 
     "", 
 
     "", 
 
     "" 
 
    ] 
 
    ] 
 
}; 
 

 
/** 
 
* Simple iterator 
 
*/ 
 
$.each(testdata.data, function(index, value) { 
 
    alert(index + ": " + value); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>

Verwandte Themen