我看过类似的帖子,但我还没有找到以这种格式循环键值对数组的示例:
{
"quotes": [
{
"author": "Author One",
"quote": "Quote One"
},
{
"author": "Author Two",
"quote": "Quote Two"
},
{
"author": "Author Three",
"quote": "Quote Three"
}
]
}
我不确定为什么这段代码不起作用,即,当我尝试迭代从 Ajax 调用返回的 JSON 数据时,我无法引用 JSON 文件中的命名数组,例如 data.quotes
。如何在 Ajax 调用返回的数据中循环引用数组
var QUOTE = {
container: '#quote',
url: 'quotes.json',
load: function() {
var _quote = this;
$.ajax({
type:"get",
url: this.url,
success: function(data){
$.each(data.quotes, function(i, val) {
console.log(i, val);
});
}
});
这看起来应该可以工作,但我在 $.each()
调用中得到 a is undefined
。
感谢您的帮助,
J
最佳答案
看起来代码没有什么问题。 val.author
和 val.quote
应该包含您所期望的内容。
没有名为 a
的变量,那么错误从何而来?
我的猜测是数据不是你所期望的。尝试 console.log(data);
看看是否正确。
检查它是字符串还是对象。您可能需要 data = $.parseJSON(data)
将字符串转换为数据结构。
关于jQuery 迭代 JSON - a 未定义,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7883676/