Javascript 在url中包含Json数据,以便输出到表中的html页面
我是一个完全的初学者,所以很简单,我在亚马逊AWS的URL链接中有Json代码,我希望能够获取数据并将其输出到HTML页面上的表中。你能帮我吗。正如您在下面的html代码、JS代码和示例信息中看到的,我想从JSURL链接中的数据中提取这些信息 代码如下Javascript 在url中包含Json数据,以便输出到表中的html页面,javascript,html,json,fetch,Javascript,Html,Json,Fetch,我是一个完全的初学者,所以很简单,我在亚马逊AWS的URL链接中有Json代码,我希望能够获取数据并将其输出到HTML页面上的表中。你能帮我吗。正如您在下面的html代码、JS代码和示例信息中看到的,我想从JSURL链接中的数据中提取这些信息 代码如下 <!DOCTYPE html> <html> <head> <meta name="description" content=""> <meta name="viewport" conten
<!DOCTYPE html>
<html>
<head>
<meta name="description" content="">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="http://netdna.bootstrapcdn.com/font-awesome/4.0.3/css/font-awesome.css" rel="stylesheet">
<link href="http://fonts.googleapis.com/css?family=Fjalla+One|Cantarell:400,400italic,700italic,700" rel="stylesheet" type="text/css" />
<link rel="stylesheet" href="styles.css">
<title>Convert JSON Data to HTML Table Example</title>
<style>
table, th, td
{
margin:10px 0;
border:solid 1px #333;
padding:2px 4px;
font:15px Verdana;
}
th {
font-weight:bold;
}
</style>
</head>
<body>
<TITLE>"Country information"</TITLE>
<h2>Country information </h2>
<section class="content">
<div class="row">
<div class="box">
<div class="box-body">
<input type="button" onclick="CreateTableFromJSON()" value="Create Table From JSON" />
</div>
</div>
我使用类似这样的东西来使用JSON构建html表
var _table_ = document.createElement('table'),
_tr_ = document.createElement('tr'),
_th_ = document.createElement('th'),
_td_ = document.createElement('td');
_table_.classList.add('table')
function buildHtmlTable(arr) {
var table = _table_.cloneNode(false),
columns = addAllColumnHeaders(arr, table);
for (var i=0, maxi=arr.length; i < maxi; ++i) {
var tr = _tr_.cloneNode(false);
for (var j=0, maxj=columns.length; j < maxj ; ++j) {
var td = _td_.cloneNode(false);
cellValue = arr[i][columns[j]];
td.appendChild(document.createTextNode(arr[i][columns[j]] || ''));
tr.appendChild(td);
}
table.appendChild(tr);
}
return table;
}
function addAllColumnHeaders(arr, table)
{
var columnSet = [],
tr = _tr_.cloneNode(false);
for (var i=0, l=arr.length; i < l; i++) {
for (var key in arr[i]) {
if (arr[i].hasOwnProperty(key) && columnSet.indexOf(key)===-1) {
columnSet.push(key);
console.log(columnSet)
var th = _th_.cloneNode(false);
th.appendChild(document.createTextNode(key));
tr.appendChild(th);
}
}
}
table.appendChild(tr);
return columnSet;
}
按如下方式构建api请求:
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response comes through here
}
};
xhttp.open("GET", "/api/url/", true);
xhttp.send();
然后,如果只想将这3个对象推送到表中,请创建一个数组,然后使用这些对象构建表(未测试)
查看我做的这个JSFIDLE示例:我已经将您的标记更改为一个标记。请理解,这是两种完全不同的编程语言,就像火腿和汉堡包一样密切相关,如果你错误地标记了你的问题,你将无法让合适的专家来审查它,这可能会损害你获得体面帮助的机会。因为我对Javascript一无所知,这就是我能为你做的一切,除了祝你一切顺利,希望你能尽快得到一个像样的答案。哦,万分感谢,很抱歉,下次我会知道的哇,万分感谢你的快速回复,你知道我如何从url获取数据,因为这不起作用-getJSON(“”,function(err,data){if(err!=null){console.error(err);}else{var text=
Name:${data.Name}区域:${data.area}边界:${data.borders}
console.log(text);}嘿@Caro很抱歉耽搁了我的时间,我刚刚更新了我的答案,希望能有所帮助。J@Caro这解决了你的问题吗?我得到了要输出到html页面的数据,问题是现在试图将其添加到表中以显示-任何tips@Caro你能详细说明它是如何输出到html页面的吗?我的回复中的更新是否提供了更多的澄清什么?
var _table_ = document.createElement('table'),
_tr_ = document.createElement('tr'),
_th_ = document.createElement('th'),
_td_ = document.createElement('td');
_table_.classList.add('table')
function buildHtmlTable(arr) {
var table = _table_.cloneNode(false),
columns = addAllColumnHeaders(arr, table);
for (var i=0, maxi=arr.length; i < maxi; ++i) {
var tr = _tr_.cloneNode(false);
for (var j=0, maxj=columns.length; j < maxj ; ++j) {
var td = _td_.cloneNode(false);
cellValue = arr[i][columns[j]];
td.appendChild(document.createTextNode(arr[i][columns[j]] || ''));
tr.appendChild(td);
}
table.appendChild(tr);
}
return table;
}
function addAllColumnHeaders(arr, table)
{
var columnSet = [],
tr = _tr_.cloneNode(false);
for (var i=0, l=arr.length; i < l; i++) {
for (var key in arr[i]) {
if (arr[i].hasOwnProperty(key) && columnSet.indexOf(key)===-1) {
columnSet.push(key);
console.log(columnSet)
var th = _th_.cloneNode(false);
th.appendChild(document.createTextNode(key));
tr.appendChild(th);
}
}
}
table.appendChild(tr);
return columnSet;
}
document.getElementById('yourDIV').appendChild(buildHtmlTable(res));
var xhttp = new XMLHttpRequest();
xhttp.onreadystatechange = function() {
if (this.readyState == 4 && this.status == 200) {
// Response comes through here
}
};
xhttp.open("GET", "/api/url/", true);
xhttp.send();
// Response comes through here
var obj = []
var data = xhttp.responseText
obj.push(data.name, data.area, data.borders)
document.getElementById('yourDIV').appendChild(buildHtmlTable(data));