访问未知的Json结构

时间:2012-11-30 17:11:01

标签: javascript jquery jsonp

我需要使用以下结构访问javascript中的json对象:

jsonp1354291250080({
    "query":{"count":"1","created":"2012","lang":"en"},
    "results":["this is a test"]
});

我从在线服务收到此对象,我无法控制其结构,并且使用data.query无效。

请有人知道如何访问它。

更新:我正在使用James Padolsey的jquery.xdomainajax.js https://github.com/padolsey/jQuery-Plugins/tree/master/cross-domain-ajax/ 并使用jQuery的$ .get()函数来执行跨域请求

1 个答案:

答案 0 :(得分:1)

您正在使用JSONP服务,因为您位于其他域中。您最好的选择是让jQuery's $.getJSON为您处理。

  

如果网址包含字符串“callback =?” (或类似的,由...定义)   在服务器端API),请求被视为JSONP。见   讨论$.ajax()中的jsonp数据类型以获取更多详细信息。

该页面上的JSONP示例:

<!DOCTYPE html>
<html>
<head>
  <style>img{ height: 100px; float: left; }</style>
  <script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
  <div id="images">

  </div>
<script>
  $.getJSON("http://api.flickr.com/services/feeds/photos_public.gne?jsoncallback=?",
    {
      tags: "mount rainier",
      tagmode: "any",
      format: "json"
    },
    function(data) {
        $.each(data.items, function(i,item){
        $("<img/>").attr("src", item.media.m).appendTo("#images");
        if ( i == 3 ) return false;
    });
  });
</script>

</body>
</html>