[英]Looping through multidimensional JSON data
正在嘗試在HTML表中顯示JSON數據。
樣本JSON數據
[
{
"rect": [
{
"req": "108",
"dev": "000",
"pre": "201",
"tst": "2019-08-10 18:18:10"
},
{
"req": "107",
"dev": "000",
"pre": "210",
"tst": "2019-08-04 22:05:31"
},
{
"req": "106",
"dev": "000",
"pre": "299",
"tst": "2019-08-04 20:24:40"
},
{
"req": "105",
"dev": "000",
"pre": "210",
"tst": "2019-08-04 20:24:29"
},
{
"req": "104",
"dev": "000",
"pre": "290",
"tst": "2019-08-04 20:16:07"
},
],
"ntif": {
"notification": 6
}
}
]
這是我的JavaScript,
success: function(JSONObject) {
var peopleHTML = "";
for (var key in JSONObject) {
if (JSONObject.hasOwnProperty(key)) {
peopleHTML += "<tr>";
peopleHTML += "<td>" + JSONObject["rect"][key]["req"] + "</td>";
peopleHTML += "<td>" + JSONObject["rect"][key]["pre"] + "</td>";
peopleHTML += "</tr>";
}
}
$("#people tbody").html(peopleHTML);
}
產量
加載頁面時,只有前3個對象被放入HTML表中,其余數據未在表中顯示。
如何在表格中顯示整個數據?
您可以一次使用double forEach
依次迭代外部數組和內部數組。
let data = [{ "rect": [{ "req": "108", "dev": "000", "pre": "201", "tst": "2019-08-10 18:18:10" }, { "req": "107", "dev": "000", "pre": "210", "tst": "2019-08-04 22:05:31" }, { "req": "106", "dev": "000", "pre": "299", "tst": "2019-08-04 20:24:40" }, { "req": "105", "dev": "000", "pre": "210", "tst": "2019-08-04 20:24:29" }, { "req": "104", "dev": "000", "pre": "290", "tst": "2019-08-04 20:16:07" }, ], "ntif": { "notification": 6 } }] let peopleHTML = ''; data.forEach(function(items) { items.rect.forEach(function(elem) { peopleHTML += `<tr> <td>${elem.req}</td> <td>${elem.pre}</td> </tr>` }) }) $("#people tbody").html(peopleHTML);
table tbody tr td { border: 1px solid black; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id='people'> <tbody></tbody> </table>
您也可以直接迭代rect
數組。
let data = [{ "rect": [{ "req": "108", "dev": "000", "pre": "201", "tst": "2019-08-10 18:18:10" }, { "req": "107", "dev": "000", "pre": "210", "tst": "2019-08-04 22:05:31" }, { "req": "106", "dev": "000", "pre": "299", "tst": "2019-08-04 20:24:40" }, { "req": "105", "dev": "000", "pre": "210", "tst": "2019-08-04 20:24:29" }, { "req": "104", "dev": "000", "pre": "290", "tst": "2019-08-04 20:16:07" }, ], "ntif": { "notification": 6 } }] let peopleHTML = ''; [].forEach.call(data[0].rect, function(elem) { peopleHTML += `<tr> <td>${elem.req}</td> <td>${elem.pre}</td> </tr>` }); $("#people tbody").html(peopleHTML);
table tbody tr td { border: 1px solid black; }
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script> <table id='people'> <tbody></tbody> </table>
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.