2016-06-22 14 views
2

私はこのJSONデータを持っている:このJSONデータをテーブルにループする方法はありますか?

{ 
    "particles": { 
     "name": "particles", 
     "values": [ 
      ["35.5", 1466588408869], 
      ["35.5", 1466589538531], 
      ["45.5", 1466589577084] 
     ] 
    }, 
    "timestamps": { 
     "name": "timestamps", 
     "values": [ 
      ["144500", 1466588408870], 
      ["144500", 1466589538531], 
      ["144500", 1466589577084] 
     ] 
    } 
} 

方法以下の表に、私はループにそれをできますか?

<table> 
    <tr> 
    <th>particles</th> 
    <th>timestamps</th> 
    </tr> 
    <tr> 
    <td>35.5</td> 
    <td>144500</td> 
    </tr> 
    <tr> 
    <td>35.5</td> 
    <td>144500</td> 
    </tr> 
    <tr> 
    <td>45.5</td> 
    <td>144500</td> 
    </tr> 
</table> 

私の試み:

div.table-responsive 
    table.table.table-hover.table-bordered 
     thead 
      tr 
       each variable, i in dataset.data 
        if variable.name 
         th.text-center #{variable.name} 
     tbody 
      tr 
       each variable, i in dataset.data 
        if variable.values 
         td 
          each value, i in variable.values 
           p= value[0] 

結果(良くない):

<table class="table table-hover table-bordered"> 
     <thead> 
      <tr> 
       <th class="text-center">particles</th> 
       <th class="text-center">timestamps</th> 
      </tr> 
     </thead> 
    <tbody> 
     <tr> 
      <td><p>35.5</p><p>35.5</p><p>45.5</p></td> 
      <td><p>144500</p><p>144500</p><p>144500</p></td> 
     </tr> 
    </tbody> 
    </table> 

任意のアイデア?

+2

jqueryで解決できますか? –

+0

かもしれません。どうしてですか?:-) – laukok

答えて

1

私はそれが汚いと思いますが、ここでは答えの始まりかもしれません...それは何よりも優れています。

あなたはこのから自分を含浸させることができます:私はJavascriptを/ jQueryのではプロではないが、私は自分のソリューションを作る

var data = { 
 
    "particles": { 
 
     "name": "particles", 
 
     "values": [ 
 
      ["35.5", 1466588408869], 
 
      ["35.5", 1466589538531], 
 
      ["45.5", 1466589577084] 
 
     ] 
 
    }, 
 
    "timestamps": { 
 
     "name": "timestamps", 
 
     "values": [ 
 
      ["144500", 1466588408870], 
 
      ["144500", 1466589538531], 
 
      ["144500", 1466589577084] 
 
     ] 
 
    } 
 
}; 
 

 
var titles = []; 
 
var append = ""; 
 

 
$.each(data, function(i, e) { 
 
    titles.push(e.name); 
 
}); 
 

 
append += "<tr>"; 
 
$.each(titles, function(i, title) { 
 
    append += "<th>" + title + "</th>"; 
 
}); 
 
append += "</tr>"; 
 

 
$.each(data[titles[0]].values, function(i, e) { 
 
    append += "<tr>"; 
 
    $.each(titles, function(o, title) { 
 
    append += "<td>" + data[title].values[i][0] + "</td>"; 
 
    }); 
 
    append += "</tr>"; 
 
}); 
 

 
$("#result").append(append);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<table id="result"></table>

+0

答えをありがとう。私はあなたの答えのパターンに従っており、玉の解決策を書いています。下の私の答えを参照してください。感謝! :-) – laukok

1

、当然のことながら、それを行うには良い方法がありますしかし、私の答えと他の答えで、おそらくあなた自身の解決策を作ることができます。 JASEに

var obj = { 
    "particles": { 
     "name": "particles", 
     "values": [ 
      ["35.5", 1466588408869], 
      ["35.5", 1466589538531], 
      ["45.5", 1466589577084] 
     ] 
    }, 
    "timestamps": { 
     "name": "timestamps", 
     "values": [ 
      ["144500", 1466588408870], 
      ["144500", 1466589538531], 
      ["144500", 1466589577084] 
     ] 
    } 
} 

var table_length = 0; 
var y = {}; 
for (var i in obj) { 
    y = obj[i]; 
    break; 
} 

table_length = y.values.length+1; 

for (var j=0 ; j < table_length; j++) { 
$("table").append("<tr></tr>"); 
} 

for (var i in obj) { 
    $("table tr:first").append("<th>"+obj[i].name+"</th>"); 
    var x = 1; 
    for (var j in obj[i].values) { 
     $('table tr').eq(x).append("<td>"+obj[i].values[j][0]+"</td>"); 
     x++; 
    } 
} 

LIVE DEMO JSFiddle

+0

答えをありがとう。私はあなたの答えのパターンに従っており、玉の解決策を書いています。下の私の答えを参照してください。感謝! :-) – laukok

0

回答:

ありますが私のものです

table.table.table-hover.table-bordered 
    thead 
     tr 
      each variable, i in dataset.data 
       if variable.name 
        th.text-center #{variable.name} 
    tbody 
     - var data = dataset.data; 
     - var titles = []; 
     - for (var property in data) titles.push(property) 

     =JSON.stringify(data) 

     each value, i in data[titles[0]].values 
      tr 
       each title, x in titles 
        td= data[title].values[i][0] 

どのような地獄!

関連する問題