小编典典

将AJAX返回数据转换为JSON

ajax

我正在尝试检索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对象。此调用必须同步进行,因为它会加载重要数据。

任何帮助将不胜感激。


阅读 718

收藏
2020-07-26

共1个答案

小编典典

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

$.ajax({
  // ...
  dataType: "text",
  // ...
});

然后,您将能够获取JSON字符串。但是,如果您打算此后将其转换为JS值,请让我停止:jQuery可以自动为您完成此操作。如果您指定dataTypeto
"json",或者只是让jQuery做出明智的猜测,则data传递给success:函数的参数将是解析的JSON对象。

2020-07-26