Result.responseText在JQuery中未定义,但可用并在firebug中工作

时间:2013-04-06 21:07:38

标签: jquery json

我正在编写一个返回包含Flickr API信息的JSON对象的函数。 全局变量数据在firebug的控制台中返回一个json对象,data.responseText也打印出相关信息。但是,在代码中调用jsonthing = data.responseText会导致某些内容未定义。

最终,我只想使用parseJSON(data.responseText)来创建一个JSON对象,令人惊讶的是它在firebug控制台中工作,而不是在代码中。

任何想法?

$(function () {
  var apiKey = 'somekeyhere';
  data = $.getJSON(
    'http://api.flickr.com/services/rest/?&method=flickr.people.getPublicPhotos&api_key=' +
    apiKey + '&user_id=29096781@N02&format=json&per_page=5&nojsoncallback=1');
  hi = '2';
  jsonthing = data.responseText;
  jsonobj = jQuery.parseJSON(data.responseText);
  $('#Test').html(data.toString());
  //$('#Test').html(data.photos.photo.title); 
});

2 个答案:

答案 0 :(得分:2)

您不需要parseJSON。 getJSON回调的结果已经解析为JS数据结构

答案 1 :(得分:2)

$.getJSON是异步的,因此您需要注册回调:

$.getJSON('url', function(data) {
    // Work with data
});