提问人:Cecilia R 提问时间:6/11/2023 最后编辑:mplungjanCecilia R 更新时间:6/11/2023 访问量:126
我已经用 JS 获取了一个 API,但输出看起来很糟糕,我不知道如何修复它 [关闭]
I have fetched an API with JS, but the output looks really bad and I don't know how to fix it [closed]
问:
我正在尝试使用 Javascript 获取 API,它正在工作,但我无法弄清楚如何使其可读。这是我的代码:
这是输出:
我已经用 ES6 做过几次了,但我不明白如何在原版中做到这一点。我猜是新手问题,但希望得到一些帮助。 提前致谢!
我试图添加JSON.stringify(data, null, 2);但这无济于事。我还尝试通过在数据后添加端点名称来获取一些端点,但随后没有任何显示。
答:
-1赞
Ashar Khan
6/11/2023
#1
function fetchData() {
fetch(URL)
.then(response => response.json())
.then(data => {
const dataContainer = document.getElementById('dataContainer');
// Extracting and displaying specific data
data.forEach(item => {
const headline = item.headline;
const paragraph = item.paragraph;
const itemElement = document.createElement('div');
itemElement.innerHTML = `<h2>${headline}</h2><p>${paragraph}</p>`;
dataContainer.appendChild(itemElement);
});
})
.catch(error => {
console.error('Error:', error);
});
}
fetchData();
假定 API 响应数据是一个对象数组。data.forEach() 方法用于遍历数组中的每个对象。在循环中,将从每个对象中提取标题和段落属性。
为每个项目创建一个新的 div 元素,并使用模板文本设置其内容以包含提取的数据。这将创建一个结构化的 HTML 标记,其中标题作为 h2 元素,段落作为 p 元素。
最后,新创建的 div 元素将追加到网页上的 dataContainer 元素中,该元素将单独显示每个项目。
评论
0赞
Cecilia R
6/12/2023
谢谢你,它现在正在工作,你拯救了我的一天!
-1赞
mplungjan
6/11/2023
#2
您需要解析和提取位。
例如,像这样
const data = [{"vignette":"","order":"1","imageUrl":"","headlinePrefix":"JUST NU: ","headline":"Polisanmäler — timmar innan match","paragraphPrefix":"","paragraph":"AIK agerar efter nya avgångskrave t"},{"vignette":"#v-826f4b23-1df4-42c4-b20f-75 1aaa520117","order":"2","imageUrl":"https://static.cdn-expressen.se/images/8f/d7/8fd7fe0e7cf3 4cd9aaef1d47c34369e1/16x6/1280.png","head linePrefix":"","headline":"Elias sköts ihjäl i Farsta: \"Han var bara ett barn\"","paragraphPrefix":"","paragraph":"15-åringens familj fick tvätta bort hans blod. \"Bråkade inte med någon\""}, {"vignette":"","order":"3","imageUrl":"https://stati c.cdn-expressen.se/images/54/b6/54b6560a8d ef4b889b4d6ab12652be80/16x6/[email protected] g","headlinePrefix":"","headline":"Fattar ingenting efter fruns sms - mitt i tv-sändningen","para graphPrefix":"","paragraph":"Alexander Axén om orden som skapade panik: \"Skrev att hon slåss\""}]
document.getElementById('dataContainer').innerHTML = data
.map(item => `<h2><b>${item.headlinePrefix || ""}</b> ${item.headline}</h2>
<p>${item.paragraph}</p>`).join('<hr/>')
<div id="dataContainer"></div>
评论
I've done this with ES6 several times, but I don't understand how to do it in vanilla
JSON.stringify(data, null, 2);
是你要寻找的内置漂亮的打印机,但你必须将容器设置为具有,因为stringify的输出包括而不是.white-space: pre
\n
<br>