将AJAX返回数据转换为JSON

我正在尝试检索JSON对象(我已验证的文件格式正确)中的数据,并将数据输出到firebug控制台中。我使用JSONLint(http://jsonlint.com/)验证了JSON,并且知道数据没有在JSON对象中返回,因为当我记录它时,它是以文本而不是对象的形式记录的。当我查看ajax帖子时,有一个JSON选项卡,其中显示了该对象,出于某种原因,我只是无法检索它。

我的ajax电话是

    $.ajax({

url:'/coords/base',

data: { type: obj.type, id: obj.id },

dataType:'text',

type:'get',

async:false,

success: function(data) {

console.log(data);

}

});

我的返回数据如下所示:

    {   

"1": {"name":"TEXT","coords":[

{ "entry":3,"x":15,"y":15 }

]}}

当我将AJAX调用设置为变量并添加.responseText时;到调用结束,我可以检索AJAX调用的纯文本返回。我以为我可以再使用$

.serialize()或$ .parseJSON(),但随后出现错误“未捕获的异常:语法错误,无法识别的表达式”。

最终目标是从此responseText检索内容,并在整个文件中使用JSON对象。此调用必须同步进行,因为它会加载重要数据。

任何帮助将不胜感激。

回答:

明确指示jQuery将响应视为文本:

$.ajax({

// ...

dataType: "text",

// ...

});

然后,您将能够获取JSON字符串。但是,如果您打算此后将其转换为JS值,请让我停止:jQuery可以自动为您完成此操作。如果您指定dataTypeto

"json",或者只是让jQuery做出明智的猜测,则data传递给success:函数的参数将是解析的JSON对象。

以上是 将AJAX返回数据转换为JSON 的全部内容, 来源链接: utcz.com/qa/419616.html

回到顶部