使用 JavaScript 将 JSON 数据动态转换为 HTML 表

冷不防 2023-10-01 16:33 69阅读 0赞

如您所知, JSON 或 JavaScript Object Notation是一种简单易懂的数据格式。JSON 是轻量级且独立于语言的,这就是它通常与jQuery Ajax 一起用于传输数据的原因。在本文中,我将向您展示如何使用 JavaScript将 JSON 数据动态转换为 HTML 表格。此外,您将了解如何使用createElement() 方法在 JavaScript 中动态创建表。

0ca542b237c8eb327a4aeb43748050b5.png

注意:您还可以使用 jQuery 将数据从 JSON 文件转换为 HTML 表,并且使用此过程,您可以使用 jQuery 或 JavaScript创建简单的 CRUD 应用程序。

此示例的 JSON 如下所示。

  1. [
  2. {
  3. "Book ID": "1",
  4. "Book Name": "Computer Architecture",
  5. "Category": "Computers",
  6. "Price": "125.60"
  7. },
  8. {
  9. "Book ID": "2",
  10. "Book Name": "Asp.Net 4 Blue Book",
  11. "Category": "Programming",
  12. "Price": "56.00"
  13. },
  14. {
  15. "Book ID": "3",
  16. "Book Name": "Popular Science",
  17. "Category": "Science",
  18. "Price": "210.40"
  19. }
  20. ]

上面的 JSON 有一个包含三个不同书籍的数组,它们的 ID、名称、所属的类别和价格。我的演示只有三个记录。您可以添加更多。我希望读取 JavaScript 中的 JSON 数据,获取

标题的列(书籍 ID、书籍名称等)以及相应标题的值。检查下面的图像。

标记

在标记部分,我有一个输入类型按钮来调用 JavaScript 函数,该函数将提取 JSON 数据,动态创建带有标题和行的

,最后在其中填充数据。我还有 DIV 元素,它将作为我们表格的容器。填充数据后,我会将
附加到

  1. <!DOCTYPE html>
  2. <html>
  3. <head>
  4. <title>Convert JSON Data to HTML Table</title>
  5. <style>
  6. th, td, p, input {
  7. font:14px Verdana;
  8. }
  9. table, th, td
  10. {
  11. border: solid 1px #DDD;
  12. border-collapse: collapse;
  13. padding: 2px 3px;
  14. text-align: center;
  15. }
  16. th {
  17. font-weight:bold;
  18. }
  19. </style>
  20. </head>
  21. <body>
  22. <input type="button" onclick="CreateTableFromJSON()" value="Create Table From JSON" />
  23. <p id="showData"></p>
  24. </body>
  25. <script>
  26. function CreateTableFromJSON() {
  27. var myBooks = [
  28. {
  29. "Book ID": "1",
  30. "Book Name": "Computer Architecture",
  31. "Category": "Computers",
  32. "Price": "125.60"
  33. },
  34. {
  35. "Book ID": "2",
  36. "Book Name": "Asp.Net 4 Blue Book",
  37. "Category": "Programming",
  38. "Price": "56.00"
  39. },
  40. {
  41. "Book ID": "3",
  42. "Book Name": "Popular Science",
  43. "Category": "Science",
  44. "Price": "210.40"
  45. }
  46. ]
  47. // EXTRACT VALUE FOR HTML HEADER.
  48. // ('Book ID', 'Book Name', 'Category' and 'Price')
  49. var col = [];
  50. for (var i = 0; i < myBooks.length; i++) {
  51. for (var key in myBooks[i]) {
  52. if (col.indexOf(key) === -1) {
  53. col.push(key);
  54. }
  55. }
  56. }
  57. // CREATE DYNAMIC TABLE.
  58. var table = document.createElement("table");
  59. // CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.
  60. var tr = table.insertRow(-1); // TABLE ROW.
  61. for (var i = 0; i < col.length; i++) {
  62. var th = document.createElement("th"); // TABLE HEADER.
  63. th.innerHTML = col[i];
  64. tr.appendChild(th);
  65. }
  66. // ADD JSON DATA TO THE TABLE AS ROWS.
  67. for (var i = 0; i < myBooks.length; i++) {
  68. tr = table.insertRow(-1);
  69. for (var j = 0; j < col.length; j++) {
  70. var tabCell = tr.insertCell(-1);
  71. tabCell.innerHTML = myBooks[i][col[j]];
  72. }
  73. }
  74. // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
  75. var divContainer = document.getElementById("showData");
  76. divContainer.innerHTML = "";
  77. divContainer.appendChild(table);
  78. }
  79. </script>
  80. </html>

我提到的 JSON 数据存储在一个名为myBooks的数组中。结构非常简单,您可以向其中添加更多数据。

发表评论

表情:
评论列表 (有 0 条评论,69人围观)

还没有评论,来说两句吧...

相关阅读