[英]Get and print informations from Json File in HTML website
我需要创建一个基本网站,我必须在其中打印 Json 文件中的信息。 使用 JavaScript。 对于我想在我的 html 网站上显示的 json 文件中的每个人,此人的图片以及 json 中的链接,以及他的名字和出生日期。
我想要的是,结果的图片,在一个小标题下面:个人信息以及来自 json 的一些信息。
但我不知道该怎么做,因为我是 Javascript 的初学者。 你能帮我吗 ? 非常感谢西奥
{
"number_of_results": 20,
"results": [
{
"name": {
"first": "Test",
"last": "Test"
},
"date_of_birth": {
"date": "1985-12-03T02:05:33",
"age": 36
},
"picture": {
"large": "apple.png",
},
},
{
"name": {
"first": "Test1",
"last": "Test1"
},
"date_of_birth": {
"date": "1999-11-18T20:05:06",
"age": 33
},
"picture": {
"large": "apple1.png",
}
}
}
这是我的 html
<!DOCTYPE html>
<html>
<head>
<title>Test</title>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<script src="https://code.jquery.com/jquery-3.3.1.slim.min.js"></script>
<link rel="stylesheet" type="text/css" href="./styles.css">
<script type="text/javascript" src = "test.js">
</script>
</head>
<body>
<div class="album py-5 bg-light">
<div class="container">
<br><h1>Persons</h1><br>
<div class="row">
<div class="card-group">
<div id="myData"></div>
</div>
</div>
</div>
</div>
我试过这个脚本之王,但它不起作用
fetch('test.json')//file json objects
.then(function (response) {
return response.json();
})
.then(function (data) {
appendData(data);
})
.catch(function (err) {
console.log('error: ' + err);
});
function appendData(data) {
var mainContainer = document.getElementById("myData");
for (var i = 0; i < data.results.length; i++) {
var img = document.createElement("img");
img.src = data.results[i].picture.large;
mainContainer.appendChild(img);
var div = document.createElement("div");
div.innerHTML = 'Email: ' + data.results[i].email + ' First Name :' + data.results[i].name.first;
mainContainer.appendChild(div);
}
}
您的数据结构似乎与脚本中的数据结构不太匹配,因此此处的一些更正(来自您的版本)是:
.firstName
更改为.name.first
results.name
变成results[i].name
以下脚本应将名称/电子邮件和图像附加到 div。
function appendData(data) {
var mainContainer = document.getElementById("myData");
for (var i = 0; i < data.results.length; i++) {
var div = document.createElement("div");
div.innerHTML = 'Email: ' + data.results[i].email + ' First Name :' + data.results[i].name.first;
mainContainer.appendChild(div);
var img = document.createElement("img");
img.src = data.results[i].picture.large;
mainContainer.appendChild(img);
}
}
尝试这个:
function appendData(data) {
var mainContainer = document.getElementById("myData");
for (var i = 0; i < data.results.length; i++) {
var div = document.createElement("div");
div.innerHTML = 'Email: ' + (data.results[i].email?data.results[i].email:'') + ' First Name :' + (data.results[i].name?data.results[i].name.first:'');
mainContainer.appendChild(div);
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.