Javascript 访问数组中的JSON对象
我已经学习了林达关于JSON的课程,并且真的四处搜索来解决这个bug;然而,我想我的问题太具体了,我需要一个例子 JSON 从我从搜索和视频中收集到的信息来看,我认为下面的代码很接近。问题一定是,这只是数组中的一个值,而不是另一个对象Javascript 访问数组中的JSON对象,javascript,json,node.js,Javascript,Json,Node.js,我已经学习了林达关于JSON的课程,并且真的四处搜索来解决这个bug;然而,我想我的问题太具体了,我需要一个例子 JSON 从我从搜索和视频中收集到的信息来看,我认为下面的代码很接近。问题一定是,这只是数组中的一个值,而不是另一个对象 for (i = 0; i <= body.games.length; i++){ for (var key in body.games[i]) { console.log("Game " + (i +1)); con
for (i = 0; i <= body.games.length; i++){
for (var key in body.games[i]) {
console.log("Game " + (i +1));
console.log(body.games[i][key].away.odds.acesport);
}
}
for(i=0;i您的帖子中没有问题。我将假设问题“如何访问数组中的对象?”和“为什么我的代码不起作用?”
也许这个例子会为你澄清这一点
for (var i = 0; i <= body.games.length; i++) {
var game = body.games[i];
console.log("Game number " + (i + 1));
console.log(game.away.odds.acesport);
for (var key in game) {
// This will print the strings "away", "home", "time" and "status",
// but not the values game[key] which are "object", "object",
// "7:05 PM EST" and "Final".
console.log("Game property: " + key);
}
}
for(var i=0;i您的帖子中没有问题。我将假设问题“如何访问数组中的对象?”和“为什么我的代码不起作用?”
也许这个例子会为你澄清这一点
for (var i = 0; i <= body.games.length; i++) {
var game = body.games[i];
console.log("Game number " + (i + 1));
console.log(game.away.odds.acesport);
for (var key in game) {
// This will print the strings "away", "home", "time" and "status",
// but not the values game[key] which are "object", "object",
// "7:05 PM EST" and "Final".
console.log("Game property: " + key);
}
}
对于(var i=0;i您正在尝试访问body.games[i].away.away.赔率.acesport,这不起作用。您应该尝试以下方法:
方法#1
只需获取您知道的具有所需属性的两个键的值
for (i = 0; i <= body.games.length - 1; i++){
console.log("Game " + (i +1));
console.log(body.games[i].away.odds.acesport);
console.log(body.games[i].home.odds.acesport);
}
或者更干净(如果可以使用字符串模板和箭头函数):
您正在尝试访问body.games[i].away.away.赔率.acesport
,此操作无效。您应该尝试以下方法:
方法#1
只需获取您知道的具有所需属性的两个键的值
for (i = 0; i <= body.games.length - 1; i++){
console.log("Game " + (i +1));
console.log(body.games[i].away.odds.acesport);
console.log(body.games[i].home.odds.acesport);
}
或者更干净(如果可以使用字符串模板和箭头函数):
你想访问什么body.games[i].away.toffics.acesport
或body.games[i][key].toffics.acesport
。不要尝试使用[key].away
,因为key
将是“away”
。但是循环中的内部将不仅仅是“away”
和“home”
,它将完成“time”
和“status”
没有赔率属性。此外,在外循环中,您希望尝试访问任何赔率属性。正在努力理解双循环。body.games[i]。away.momes.acesport您希望访问什么body.games[i]。away.domes.acesport
或body.games[i][key].赔率.acesport
。不要尝试使用[key].away
,因为key
将是“away”
。但是,..in
循环中的内部不只是执行“away”
和“home”
,它将执行“time”
和“status”
没有赔率
属性。此外,在外循环上,您希望尝试访问任何赔率属性。正在努力理解双循环.body.games[i].away.locks.acesport感谢您的解释//这将打印字符串“away”、“home”、“time”和“status”,//但不是“对象”、“对象”、“东部时间下午7:05”和“最终”的值游戏[key]。这正是我不理解的地方,我的问题如此糟糕的原因是我不确定如何提问。我没有正确的词汇来要求“数组”中的“属性”。感谢您对//的解释,这将打印字符串“离开”、“回家”、“时间”和“状态”//但不会打印值游戏[key]它们是“对象”、“对象”、“美国东部标准时间下午7:05”和“最终”。这正是我不理解的地方,我的问题如此糟糕的原因是我不确定如何提问。我没有正确的词汇要求“数组”中的“属性”。
body.games.forEach(function(game, index) {
console.log("Game " + index + 1);
Object.keys(game).forEach(function (prop) {
var acesport = game[prop].odds && game[prop].odds.acesport;
if (acesport) console.log(acesport);
});
});
body.games.forEach((game, index) => {
console.log(`Game ${index + 1}`);
Object.keys(game).forEach((prop) => {
var acesport = game[prop].odds && game[prop].odds.acesport;
if (acesport) console.log(acesport);
});
});