javascript - 使用 JavaScript 循环遍历 JSON 数组
问题描述
我正在从一个 url 加载 JSON,我想通过 try 中的主题数组创建一个循环并输出每个 itemName。但是它不断出错,我对使用 JavaScript 和 JSON 还很陌生,所以我可能会以错误的方式解决这个问题。任何建议将不胜感激!
JavaScript 代码
<script>
getUrl();
//Get the Url with current date + current time
function getUrl() {
var dateObj = new Date();
var month = ("0" + (dateObj.getMonth() + 1)).slice(-2);
var day = ("0" + dateObj.getDate()).slice(-2);
var year = dateObj.getFullYear();
var hours = dateObj.getHours();
var minutes = dateObj.getMinutes();
var seconds = dateObj.getSeconds();
var currentdate = "";
currentdate = year + "-" + month + "-" + day + "T" + hours + ":" + minutes + ":" + seconds;
var currenttime = "";
currenttime = hours + minutes + seconds;
var url = "http://snowautomation.msbb.uc.edu/API/schedule/getAval.sh?" + currentdate;
console.log(url);
loadJSON(url);
}
//Load the JSON from the url
function loadJSON(url) {
fetch(url)
.then(res => res.json())
.then((out) => {
parseData(out);
})
.catch(err => { throw err });
}
function parseData(json) {
try {
for (var i = 0; i < results.length; i++) {
for (var prop in result[i]) {
if (result[i].itemName[enter image description here][1](prop)) {
alert(result[i][prop]);
}
}
}
console.log(json);
}
catch {
console.log("error");
}
}
</script>
JSON
{comptype: "availability", headers: {…}, obj_id: 347, last_id: 28, subjects: Array(22), …}
comptype: "availability"
headers: {data: Array(17)}
last_id: 28
lastupdate: "2020-08-04T10:41:34.463"
obj_id: 347
page_count: 1
subjects: Array(22)
0: {itemId: 2305, itemName: "LINDHALL 0040", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0, …}
1: {itemId: 2303, itemName: "LINDHALL 0050", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
2: {itemId: 2304, itemName: "LINDHALL 0060", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0, …}
3: {itemId: 2306, itemName: "LINDHALL 0070", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
4: {itemId: 2340, itemName: "LINDHALL 1210", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
5: {itemId: 2307, itemName: "LINDHALL 1215", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0, …}
6: {itemId: 2309, itemName: "LINDHALL 2120", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
7: {itemId: 2310, itemName: "LINDHALL 2125", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
8: {itemId: 2311, itemName: "LINDHALL 2240", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
9: {itemId: 2312, itemName: "LINDHALL 2245", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
10: {itemId: 2313, itemName: "LINDHALL 2250", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
11: {itemId: 2314, itemName: "LINDHALL 3115", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
12: {itemId: 2315, itemName: "LINDHALL 3125", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
13: {itemId: 2316, itemName: "LINDHALL 3220", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
14: {itemId: 2317, itemName: "LINDHALL 3225", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
15: {itemId: 2318, itemName: "LINDHALL 3230", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
16: {itemId: 2319, itemName: "LINDHALL 3240", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
17: {itemId: 2320, itemName: "LINDHALL 3260", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
18: {itemId: 2321, itemName: "LINDHALL 3265", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
19: {itemId: 2322, itemName: "LINDHALL 4210", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
20: {itemId: 2323, itemName: "LINDHALL 4225", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
21: {itemId: 2324, itemName: "LINDHALL 4230", item_date: "2020-08-04T00:00:00", itemTypeId: 4, isFav: 0}
length: 22
__proto__: Array(0)
__proto__: Object
解决方案
推荐阅读
- java - 提取两个用空格填充的管道之间的数字
- java - 在索引中找不到生产者方法返回类型:org.springframework.web.client.RestTemplate
- azure-devops - 需要通过 azure 管道将每个阶段的发布工件存储在单个目录中
- github - 引用 README.md 中显示的图像
- python - Kivy 计算按下“计数器”按钮时打开的 ToggleButtons 的数量
- php - PHP ODBC一次将多行插入MSSQL返回错误
- javascript - 如何使用 Jquery 读取默认值?
- java - 如何将arrayist作为mapreduce java的输入
- ruby-on-rails - 安装 Rails 4.2.5 时出错,mkmf.rb 找不到 ruby 的头文件
- flutter - Flutter // 点击按钮使用 async 执行两个函数并等待函数 onPressed 并从 api 获取数据