jQuery迭代JSON - 未定义

时间:2011-10-25 01:12:11

标签: jquery ajax json

我看过类似的帖子,但我没有找到以这种格式循环键值对数组的示例:

{
"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);
    });
  }
});

这似乎应该可行,但我a is undefined来电$.each()

感谢您的帮助,

Ĵ

1 个答案:

答案 0 :(得分:3)

代码似乎没有错。 val.authorval.quote应该包含您的期望。

没有名为a的变量,那么该错误来自哪里?

我的猜测是数据不是您所期望的。请尝试console.log(data);查看是否正确。

检查它是字符串还是对象。您可能需要data = $.parseJSON(data)将字符串转换为数据结构。