如何处理在JQuery中返回String的JSON请求?

时间:2010-05-03 05:56:35

标签: jquery ajax json

json / jQuery的新手很抱歉,如果这有明显的答案。

我正在jQuery中执行ajax请求,例如:

$.ajax({
        url: theURL,
        dataType: 'jsonp',
        type: 'get',
        success: function(data) {
            alert("it's there");
        }
    });

请求询问给定对象是否在数据库中。如果是,则返回格式:

    {
    "text": "duck", 
    "canonical_name": "duck", 
    "language": {
        "id": "en"
    }}

但是,如果对象不存在,则返回:

Not Found

就像在...字面上确切的字符串,据我所知,不是任何一种json格式。有什么方法可以让我的ajax检测到这个吗?现在它甚至似乎都没有承认它在后一种情况下得到了回报。

json代码不是我写的。如果这不是正确的格式,它可能是固定的,并且在我的工作结束时我无能为力,但我真的想尝试找到某种解决方法。

非常感谢!

2 个答案:

答案 0 :(得分:0)

删除dataType选项并在回调中删除:

success: function(data) {
        alert("it's there");
        var myJSON = eval(data);

    }

现在您可以将数据作为对象获取并使用如下:

myJSON.language.id

答案 1 :(得分:0)

@Aneesh不确定是否要删除dataType选项但仍可以解析成功回调中的数据。我使用JSON.stringify()甚至更好:$ .parseJSON(数据)来避免@Lowgain指出的eval缺点。你最终会得到:

success: function(data) {
    var myJSON = $.parseJSON(data);
}
相关问题