簡體   English   中英

使用JQuery從嵌套JSON創建HTML表

[英]Creating a HTML Table from nested JSON using JQuery

我有一個這樣的示例JSON:

 }
   "vehicles":"4door",
   "cars": {
   "Toyota":"Camry",
   "Ford":"Explorer",
   "Nissan":"Altima",
   "Jeep":"Wrangler"
   },
   "color":"red"
 }

我正在嘗試使用帶有JSON的示例JSON和JQuery並使用JSON中的“ cars”數組來創建帶有2個列的HTML表,這些列稱為“ Make”和“ Model”,而不會占用其他項目的顏色。 “ Make”將是JSON的鍵,而“ Model”將是鍵的值。 我試圖讓它看起來像下面這樣,但以表格格式。 任何幫助或建議,將不勝感激。

Make    Model
Toyota  Camry
Ford    Explorer
Nissan  Altima
Jeep    Wrangler

使用Object.keys獲取汽車陣列並使用forEach循環遍歷它們。 在jquery中使用append將行追加到表中

 var data = { "vehicles": "4door", "cars": { "Toyota": "Camry", "Ford": "Explorer", "Nissan": "Altima", "Jeep": "Wrangler" }, "color": "red" } var str=''; Object.keys(data.cars).forEach(e => { str+='<tr><td>' + e + '</td><td>' + data.cars[e] + '</td></tr>'; }) $('#data').append(str) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id="data"> <tr> <td>Make</td> <td>Model</td> </tr> </table> 

使用Object.keys這將給數組keys然后你可以重復它,並獲得key value從對象,並使用模板文字來創建一個行,最后追加到table

 let cars = { "Toyota": "Camry", "Ford": "Explorer", "Nissan": "Altima", "Jeep": "Wrangler" } let getKeys = Object.keys(cars); let row = ''; for (let i = 0; i < getKeys.length; i++) { row += `<tr><td>${getKeys[i]}</td><td>${cars[getKeys[i]]}</td></tr>` } $('#carTable').append(row) 
 <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id='carTable'> </table> 

您還可以從腳本創建整個HTML

<!DOCTYPE html>
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
var html = ""
var json = {
"vehicles":"4door",
"cars": {
"Toyota":"Camry",
"Ford":"Explorer",
"Nissan":"Altima",
"Jeep":"Wrangler"
},
"color":"red"
}
html = "<table><thead><th><td>Make</td><td>Model</td></th></thead><tbody>"
for(var x in json.cars){
    html+= "<tr><td>"+ x +"</td><td>"+ json.cars[x] +"</td></tr>"
}
html+="</tbody></table>"
$("#main").append(html)
});
</script>
</head>
<body>

<div id="main"></div>

</body>
</html>

在這里我看到json格式不正確,也將jsonObject.KeyName保留在變量中,然后循環保存變量的json。

var obj = {"Toyota":"Camry",   "Ford":"Explorer",   "Nissan":"Altima",   Jeep":"Wrangler"};
for (var key in obj) {  
if (obj.hasOwnProperty(key)) {
    var val = obj[key];
    console.log(val);
  }
}

之后,您將以html格式實現。

var data = {
   "vehicles": "4door",
    "cars": {
        "Toyota": "Camry",
        "Ford": "Explorer",
        "Nissan": "Altima",
         "Jeep": "Wrangler"
    },
   "color": "red"
};
var cars = data.cars; // for better performance if large table
var tableData = Object.keys(cars).map(item => '<tr><td>' + item + '</td><td>' + cars[item] + '</td></tr>').join('');

$('#main>table').append(tableData)


<div id="main">
   <table>
     <tr>
        <td>Make</td>
        <td>Model</td>
     </tr>
   </table>
</div>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM