我同意@KaeVerens,这是(或曾经是)结构不良的 JSON。除了不是数组的数组之外,还有一个您似乎不需要的额外级别的对象。如果您正在生成 JSON,那么如果改为这样会更有意义:
{
"nodes": [
{ "title": "test", "field2": "test2" },
{ "title": "test3", "field2": "test4" }
]
}
好的,现在更新您的 JSON 数据看起来更像这样。但是现在您发布的内容根本不是有效的 JSON!它是一个可以在控制台或测试代码中工作的 JavaScript 对象,但它不会通过JSON 验证器。属性名称未按应有的方式引用,并且;
末尾有 a。它应该看起来像:
{
"nodes": [
{ "title": "test" },
{ "title": "test2" },
{ "title": "test3" },
{ "title": "test4" }
]
}
(间距和缩进无关紧要;为了清楚起见,我只是以这种方式格式化它。)
无论如何,修复后,此代码可以在您当前的数据上正常工作:
$.each( data.nodes, function( index, node ) {
console.log( node.title );
});
如果您检查实际数组for
的长度而不是检查哪个不存在,您的循环将正常工作:nodes
data.length
var nodes = data.nodes;
for( var i = 0, len = nodes.length; i < len; i++ ) {
var node = nodes[i];
console.log( node.title );
}
我建议像这段代码一样引用嵌套对象(nodes
和node
变量),而不是像data.nodes[i]
. 跟踪起来要容易得多,而且效率也更高(尽管在这种简单的情况下并没有什么不同)。