你如何从javascript中的jQuery.getJSON方法获得responseText?

时间:2015-08-01 14:39:43

标签: javascript jquery json

我正在尝试使用jQuery.getJSON方法从我的目录中读取JSON文件,并返回图片中显示的对象。我想从对象中获取responseText,但无法弄清楚如何。

var jsonData = jQuery.getJSON('relationalData.json');

我曾尝试使用以下内容来提取responseText但它们都失败了。

var response = jsonData.responseText;
var response = jsonData['responseText'];

This is the object I get once I use the jQuery.getJSON on my json file.

我也试过没有运气,因为该方法甚至没有用json文件调用。当我使用xml时,它可以工作。

$.get(filename, function(data){
   var responseText = data;
});

3 个答案:

答案 0 :(得分:0)

类似于guest271314的解决方案,但也许对某些人来说仍然具有启发意义......



$.getJSON('http://ws.spotify.com/search/1/artist.json?q=foo')
 .done(function(obj,status,xhdr){$('#out').append(xhdr.responseText);});

<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<div id="out"><div>
&#13;
&#13;
&#13;

重要的部分是在.responseText对象中查找xhdr属性,可以通过回调函数的第三个参数访问该属性。

答案 1 :(得分:0)

希望知道这个问题,但是对于将来的访问者,我的解决方案在哪里?

$。getJSON方法使用HTTP GET请求从服务器获取数据,成功调用后的响应将在控制台中看到的responseText属性中返回。

因此,要获取responseText的数据,必须使用JSON.parse()方法将数据检索到javaSrcipt对象,如下所示:

var jsonData = JSON.parse(jsonCall.responseText);

但是$ .getJSON()方法是异步的,因此如果不存在响应,则必须在回调函数中完成。

最终解决方案:

var jsonCall = $.getJSON('URL',function(){
   var jsonData = JSON.parse(jsonCall.responseText);
   console.log(jsonData);
  });

答案 2 :(得分:-1)

尝试使用.then(),将responseJSON替换为responseText

var jsonData = jQuery.getJSON("https://gist.githubusercontent.com/guest271314/23e61e522a14d45a35e1/raw/a5ac6cffdc1ffab39f9db425844721b528751654/a.json");

jsonData.then(function(data, textStatus, jqxhr) {
  alert(jqxhr.responseJSON)
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>