[英]Retrieve data from JSON using another JSON
首先,Cities.json里面有城市信息,检索信息,添加到HTML,很简单。 更难的任务是使用 city.json 与城市列表仅 = ["New York", "London", "..."] 等以及存储在纽约的特定城市信息。json, London.Z466DEEC76ECDF2454Z 等 HowDD54Z 等使用 city.json 从 New York.json 检索数据?
let request = new XMLHttpRequest();
request.open('get', `cities.json`);
request.responseType = "json";
request.onload = () => {
let show = document.getElementById("box");
for (let object of request.response) {
box.innerHTML += `<p>
<a href="https://en.wikipedia.org/wiki/${object.name}">${object.name}</a>
<br>
population: ${object.population}
<br>
area: ${object.area}
</p>`;
}
}
request.send();
New York.json =
[
{
"name": "New York",
"population": some integer,
"area": some integer
},
]
您必须找到一个应用程序服务器来为某个端口上的文件夹提供服务:
示例: https://www.npmjs.com/package/light-server
命令:轻服务器 -s。 -p 8000
浏览器:http://localhost:8000 将渲染 index.html
您还可以使用 fetch 发送 HTTP 请求并接收响应。
<html>
<body>
<div id="data"></div>
<script>
function render(city, data) {
let name = data.name;
let population = data.population;
let element = document.createElement("div");
element.innerHTML = city + "=> name:" + name + ", population: " + population
document.getElementById("data").append(element);
}
fetch("/cities.json").then(response => {
response.json().then(json => {
let cities = json.cities;
cities.forEach(city => {
fetch("/" + city + ".json").then(cityResponse => {
cityResponse.json().then(cityJson => {
render(city, cityJson)
})
})
})
})
})
</script>
</body>
</html>
<html>
<body>
<div id="data"></div>
<script>
function render(city, data) {
let name = data.name;
let population = data.population;
let element = document.createElement("div");
element.innerHTML = city + "=> name:" + name + ", population: " + population
document.getElementById("data").append(element);
}
let citiesRequest = new XMLHttpRequest();
citiesRequest.onload = function () {
let json = JSON.parse(this.responseText);
let cities = json.cities;
cities.forEach(city => {
let cityRequest = new XMLHttpRequest();
cityRequest.onload = function () {
let cityJson = JSON.parse(this.responseText);
render(city, cityJson);
}
cityRequest.open("GET", "/" + city + ".json", true);
cityRequest.send();
})
}
citiesRequest.open("GET", "/cities.json", true);
citiesRequest.send();
</script>
</body>
</html>
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.