将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可以自动为您完成此操作。如果您指定dataType
to
"json"
,或者只是让jQuery做出明智的猜测,则data
传递给success:
函数的参数将是解析的JSON对象。
以上是 将AJAX返回数据转换为JSON 的全部内容, 来源链接: utcz.com/qa/419616.html