【发布时间】:2013-09-06 16:31:47
【问题描述】:
如果我从我的 NodeJS 应用程序中获取以下数据并且我想通过 javascript 显示。
{
"holes": [{
"par": 5,
"strokeindex": 5
}, {
"par": 4,
"strokeindex": 15
}, {
"par": 3,
"strokeindex": 11
}, {
"par": 4,
"strokeindex": 13
}, {
"par": 4,
"storkeindex": 1
}, {
"par": 3,
"strokeindex": 17
}, {
"par": 4,
"strokeindex": 9
}, {
"par": 4,
"strokeindex": 7
}, {
"par": 4,
"strokeindex": 3
}, {
"par": 5,
"strokeindex": 6
}, {
"par": 4,
"strokeindex": 16
}, {
"par": 3,
"strokeindex": 13
}, {
"par": 4,
"strokeindex": 14
}, {
"par": 4,
"storkeindex": 2
}, {
"par": 3,
"strokeindex": 18
}, {
"par": 4,
"strokeindex": 10
}, {
"par": 4,
"strokeindex": 8
}, {
"par": 4,
"strokeindex": 4
}]
}
上面的数据取自我使用以下命令记录的控制台:
console.log(JSON.stringify(data));
现在我想将 data.holes 中每个对象的所有“par”信息输出到一个变量以显示在我的页面上。我已经尝试过很多方式,例如:
var html = "";
for(i = 1; i < 18; i++) {
html += data.holes[1].par + '<br/>';
}
像这样:
var html = "";
for(i = 1; i < 18; i++) {
html += JSON.stringify(data.holes[1].par) + '<br/>';
}
像这样:
var html = "";
for(i = 1; i < 18; i++) {
html += JSON.parse(data.holes[1].par) + '<br/>';
}
但是当我这样做时,我会收到诸如“无法读取未定义的属性“par”或“未捕获的 SyntaxError: Unexpected token o”之类的错误。有人知道怎么回事吗?
【问题讨论】:
-
不,你在哪里声明循环中的 i 变量,也不要硬编码
i < 18,因为可能或多或少。使用data.holes.length -
@musefan 你确实可以用字符串做到这一点。
-
@Johan:是的,刚刚检查过(我会删除以避免混淆 OP)
-
是否涉及ajax?如果是这样,请尝试将数据的使用限制在成功回调中。
-
这段代码看起来运行良好(不包括
1而不是i)。你能提供一个fiddle 来证明你的错误吗?我怀疑它可能在您的代码中的其他地方
标签: javascript jquery html json node.js