javascript - 如何使用带有模板文字的 JSON 数组?
问题描述
我正在学习 javascript 并使用 Fetch 从 URL 中检索和解析一些 JSON。控制台记录 JSON 数组,但是当我尝试在模板文字中使用它时,控制台中出现错误"positions is not defined"
。这就是我被挂断的地方,因为大多数示例和教程都没有按照我的获取方式显示 JSON 格式。
我将如何访问它,以便我可以在模板文字中以我想要的方式使用它,或者有更好的方法吗?我不想循环遍历它,因为我希望能够将某些值放在我需要或想要的地方。
我正在使用的代码示例:
let positionData = new Request('URL_TO_JSON')
fetch(positionData)
.then(function(response){
return response.json();
})
.then(function(json){
document.getElementById('online').innerHTML = `THERE ARE CURRENTLY ${positions.lenght} CHASERS LIVE`;
document.getElementById('name').innerHTML = `${positions[0].name}`;
console.log(json)
})
.catch(function(err) {
console.log(`Error: ${err}` )
});
在控制台中,它显示 JSON 数组,如下所示:
{positions: Array(2)}
positions: Array(2)
0: {report_at: "2019-04-26 20:29:29", lat: "33.0851707", lon: "-96.8177032", elev: "0", dir: "0", …}
1: {report_at: "2019-04-26 05:07:29", lat: "33.0173721", lon: "-96.5511093", elev: "0", dir: "0", …}
length: 2
__proto__: Array(0)
__proto__: Object
根据我一直在观看的教程和视频,我需要做的就是这个,我认为这是我的问题所在,因为 JSON 的前缀是Positions
.
document.getElementById('name').innerHTML = `${positions[0].name}`;
但是我在控制台中收到“未定义位置”错误。
解决方案
您的数据json
包含在其中positions
,因此您应该说:
document.getElementById('online').innerHTML = `THERE ARE CURRENTLY ${json.positions.length} CHASERS LIVE`;`
document.getElementById('name').innerHTML = `${json.positions[0].name}`;
注意也lenght
应该拼写length
:-)
推荐阅读
- c# - 如何实现访问同一个表但排除某些数据的“标题”基类
- node.js - 密码验证失败
- c# - 如何解决 MSTest.TestAdapter 构建错误
- amazon-web-services - 如何在 `~/.aws/config` 中生成 AWS 配置文件以用于 CodeBuild 项目
- wordpress - 在 WordPress 子页面中链接到 div 的 ID
- vue.js - 将 URL 参数传递到 VUE.js 中的输入值
- ruby-on-rails - OWASP ZAP 说缺少 httponly 标志,但它以 chrome 显示。任何想法如何解决它?
- reactjs - 如何在 ReactJS 应用程序中显示 SunEditor 创建的数据
- python - 如何分组间隔索引,汇总列表列表的平均值并加入另一个数据框?
- python-3.x - 使用 uvicorn.run 启动服务时,FastAPI 服务结果为 404