javascript - 如何从远程 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>
解决方案
您将首先使用XMLHttpRequest或Fetch来尝试获取远程数据,然后通过JSON.parse对其进行转换。如果成功,该对象可用于生成您的表格,就像您在示例代码中一样。
如果您对使用“vanilla”JS 感到不自在,可以找到大量用于 XMLHttpRequest 和 Fetch 的库。
推荐阅读
- google-cloud-platform - 如何调试 Cloud Run (Visual Studio Code) 本地运行问题?
- siddhi - 用于 avro 的 Siddhi 源连接器未解码
- jquery - 将 jquery 从 3.3.1 分钟更新到 3.5.1 后表单不起作用
- python-3.x - 如何检查数据框中的哪些行丢失?
- python - 在 Python 列表理解中包含的条件中使用减号?
- c - C 中的数组地址有问题?
- android - 在 Android 中截屏时出错
- java - Java netbeans 问题
- python - 平方根函数实现步骤的选择
- javascript - 有没有办法转移日志/错误以在 pm2 中运行代码?