将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
指定为
\"json\"
,或者只是让jQuery做出明智的猜测,则传递给
success:
函数的
data
参数将是解析的JSON对象。     
        为什么不使用$ .getJson() 等同于
 $.ajax({
  url: url,
  dataType: \'json\',
  data: data,
  success: callback
});
然后,您应该可以执行以下操作:
$.getJSON(\'file.json\', function(data) {
$.each(data, function(i) {
       console.log(data[i]);
     });
    });
编辑 也许,我误解了这个问题。 编辑#2 也许这个问题会有所帮助: 是否有不使用回叫的$ getJSON版本? 建议使用此方法:
$.ajax({
    type: \'GET\',
    url: \'whatever\',
    dataType: \'json\',
    success: function(data) { console.log(data);},
    data: {},
    async: false
});
当然,看起来像您所拥有的,所以我觉得我需要退后一步,重新分析问题。     

要回复问题请先登录注册