从ajax请求返回一个对象

时间:2014-01-22 00:45:27

标签: javascript ajax jquery

我正在尝试执行ajax请求以获取数据并将其输入到函数parse()中。该函数在我不使用ajax时有效,但是当我使用ajax时,它不起作用。

    $.get(url,function(data){ 
        parse(data);
    });

ajax回复:

  {"all": 
     {label: "All", 
      data:  [
               ["11/30/2012",12],null,null,null,["01/24/2013",1442],["01/25/2013",1561]
             ]
     }
  };

但是,当我像这样调用我的解析函数时,它可以工作:

var data = {"all": 
 {label: "All", 
  data:  [
           ["11/30/2012",12],null,null,null,["01/24/2013",1442],["01/25/2013",1561]
         ]
 }
};

parse(data);

我甚至尝试在我的ajax响应中在文本前添加data =,但该函数仍然无法识别它。

任何人都知道如何从ajax请求中返回一个对象?

1 个答案:

答案 0 :(得分:4)

使用$.getJSON函数,这将导致响应被解析为JSON。

$.getJSON(url,function(data){ 
        parse(data);
});

或使用get()指定dataType参数。 dataType表示服务器预期返回的数据类型。

$.get(url,function(data){ 
    parse(data);
}, "json");

还考虑重新格式化JSON以使其有效(使用属性名称周围的引号):

{
    "all": {
        "label": "All",
        "data": [
            [
                "11/30/2012",
                12
            ],
            null,
            null,
            null,
            [
                "01/24/2013",
                1442
            ],
            [
                "01/25/2013",
                1561
            ]
        ]
    }
}