首页 > 解决方案 > 如何从远程 JSON 创建表?

问题描述

我知道如何从 JSON 创建一个表。下面是示例代码。但我不知道如何连接到包含要在制表功能中使用的 JSON 内容的远程 URL。我找到了这个json 页面的 url,我想用信息(大陆、国家、病例、死亡、恢复和上次更新)创建同一个表。与示例中的表格结果非常相似。如果关于这个话题的讨论存在并且有正确的结果,请写在评论中,但不要删除这个话题。

TABLE.HTML(JSON 在页面中,我想从远程 JSON 创建表)

<!DOCTYPE html>
<html>
<head>
    <title>Convert JSON Data to HTML Table</title>
    <style>
        th, td, p, input {
            font:14px Verdana;
        }
        table, th, td 
        {
            border: solid 1px #DDD;
            border-collapse: collapse;
            padding: 2px 3px;
            text-align: center;
        }
        th {
            font-weight:bold;
        }
    </style>
</head>
<body>

    <p id="showData"></p>
</body>

<script>

        var myBooks = [
            {
                "Book ID": "1",
                "Book Name": "Computer Architecture",
                "Category": "Computers",
                "Price": "125.60"
            },
            {
                "Book ID": "2",
                "Book Name": "Asp.Net 4 Blue Book",
                "Category": "Programming",
                "Price": "56.00"
            },
            {
                "Book ID": "3",
                "Book Name": "Popular Science",
                "Category": "Science",
                "Price": "210.40"
            }
        ]

        // EXTRACT VALUE FOR HTML HEADER. 
        // ('Book ID', 'Book Name', 'Category' and 'Price')
        var col = [];
        for (var i = 0; i < myBooks.length; i++) {
            for (var key in myBooks[i]) {
                if (col.indexOf(key) === -1) {
                    col.push(key);
                }
            }
        }

        // CREATE DYNAMIC TABLE.
        var table = document.createElement("table");

        // CREATE HTML TABLE HEADER ROW USING THE EXTRACTED HEADERS ABOVE.

        var tr = table.insertRow(-1);                   // TABLE ROW.

        for (var i = 0; i < col.length; i++) {
            var th = document.createElement("th");      // TABLE HEADER.
            th.innerHTML = col[i];
            tr.appendChild(th);
        }

        // ADD JSON DATA TO THE TABLE AS ROWS.
        for (var i = 0; i < myBooks.length; i++) {

            tr = table.insertRow(-1);

            for (var j = 0; j < col.length; j++) {
                var tabCell = tr.insertCell(-1);
                tabCell.innerHTML = myBooks[i][col[j]];
            }
        }

        // FINALLY ADD THE NEWLY CREATED TABLE WITH JSON DATA TO A CONTAINER.
        var divContainer = document.getElementById("showData");
        divContainer.innerHTML = "";
        divContainer.appendChild(table);

</script>
</html>

标签: javascriptjsonweb-scrapinghtml-table

解决方案


您将首先使用XMLHttpRequestFetch来尝试获取远程数据,然后通过JSON.parse对其进行转换。如果成功,该对象可用于生成您的表格,就像您在示例代码中一样。

如果您对使用“vanilla”JS 感到不自在,可以找到大量用于 XMLHttpRequest 和 Fetch 的库。


推荐阅读