2013-12-09 16 views
7

我必須有數據作爲一個JSON對象:如何JSON對象轉換爲HTML數據

{"a":1,"b",3,"ds",4} 

我想將其轉換成HTML表所示:

name|Value 
a  1 
b  3 
ds 4 

有人能提出一個方法如何在HTML中做到這一點?

謝謝

回答

11

簡單使用jQuery:

$(function(){ 

     var jsonObj = $.parseJSON('{"a":1,"b":3,"ds":4}'); 
     var html = '<table border="1">'; 
     $.each(jsonObj, function(key, value){ 
      html += '<tr>'; 
      html += '<td>' + key + '</td>'; 
      html += '<td>' + value + '</td>'; 
      html += '</tr>'; 
     }); 
     html += '</table>'; 

     $('div').html(html); 
    }); 

測試:http://jsfiddle.net/T7eQg/1/

編輯

,你可以使用這個js庫。這個庫轉換JSON到表排序和等: http://www.dynatable.com/

+0

你的代碼是比我的代碼簡單得多,而且更乾淨。謝謝......救了我的靈魂! – BeemerGuy

5

您可以使用JavaScript:

<script type="text-javascript"> 
    var data = {"a": 1, "b": 3, "ds": 4};  

    // Create a new table 
    var table = document.createElement("table"); 

    // Add the table header 
    var tr = document.createElement('tr'); 
    var leftRow = document.createElement('td'); 
    leftRow.innerHTML = "Name"; 
    tr.appendChild(leftRow); 
    var rightRow = document.createElement('td'); 
    rightRow.innerHTML = "Value"; 
    tr.appendChild(rightRow); 
    table.appendChild(tr); 

    // Add the table rows 
    for (var name in data) { 
     var value = data[name]; 
     var tr = document.createElement('tr'); 
     var leftRow = document.createElement('td'); 
     leftRow.innerHTML = name; 
     tr.appendChild(leftRow); 
     var rightRow = document.createElement('td'); 
     rightRow.innerHTML = value; 
     tr.appendChild(rightRow); 
     table.appendChild(tr); 
    } 

    // Add the created table to the HTML page 
    document.body.appendChild(table); 
</script> 

jsfiddle

產生的HTML結構是:

<table> 
    <tr> 
     <td>Name</td> 
     <td>Value</td> 
    </tr> 
    <tr> 
     <td>a</td> 
     <td>1</td> 
    </tr> 
    <tr> 
     <td>b</td> 
     <td>3</td> 
    </tr> 
    <tr> 
     <td>ds</td> 
     <td>4</td> 
    </tr> 
</table>