从JSON提要构造URL

时间:2011-11-04 01:38:07

标签: javascript jquery json getjson flickr

有人可以告诉我这里我做错了什么吗?

我正在尝试使用flickr.photos.search方法构建图片网址 现在(我需要显示接近访客地理位置的图像),我有它 使用groups_pool.gne之前工作和JSON提要不同(更简单) 格式但现在..

URL工作正常,我得到了我需要的所有数据的数组(服务器场,服务器, 秘密和id)但不能构建照片的网址。

$.getJSON("http://api.flickr.com/services/rest/?method=flickr.photos.search&api_\
key=KEY&format=json&privacy_filter=0&media=photos&has_geo=1&accuracy=13&sort=int\
erestingness-desc&content_type=1&per_page=32&extras=geo,owner_name&page=1&radius\
_units=km&radius=1.521739&lat=40.952532&lon=-4.1326349999999366&text=Alcazar&jso\
ncallback=jsonp1320163051486", getJSONimages);

function getJSONimages(data) {
  var htmlString = "";

  $.each(data.photos.photo, function(i,item){
    htmlString += '<img src="http://farm'+ item.farm +'.static.flickr.com/'+
      item.server +'/'+ item.id +'_'+ item.secret +'_m.jpg" />';
  });

  $('#slideshow').html(htmlString);

谢谢。


我在URL中添加了url_m,在URL中获取了JSON提要,我在我的feed中获得了完整的URL,这应该有帮助,因为我不必连接其余的但仍然不起作用。< / p>

我无法让它工作,而且非常令人沮丧,因为我知道这很简单。 嗯,显然不适合我。

这是我的函数,在循环中获取url_m之后:

function getJSONimages(data) {
var htmlString = "";
$.each(data.photos.photo, function(i,item){
// var url = (item.url_m).replace("\", "");
htmlString += '<img src="' + item.url_m + '" />';
});
$('#slideshow').html(htmlString);
}

即使我使用“url”变量或不使用相同的结果。

然而,我注意到了一些事情。

在使用groups_pool.gne的Feed中,我可以在其中提取照片 成功了,我去媒体那样:

$.each(data.items, function(i,item){
var biggestSize = (item.media.m).replace("_m.jpg", ".jpg");
htmlString += '<img src="' + biggestSize + '" />';

请注意,我有物品,然后是媒体,然后是m,它有自己的价值!实际上是 items。[媒体:{m:PHOTOURL}]。

在使用flickr.photos.search方法的其他JSON提要中,我有 以下“对象路径”: jsonFlickrApi.photos.photo [{url_m:PHOTOURL}]

并尝试使用此循环:

$.each(data.photos.photo, function(i,item){
htmlString += '<img src="' + item.url_m + '" />';

我认为这是我的问题,但我没有任何想法如何处理它。它的 很明显,两种饲料之间存在不同的结构:

项目。[媒体:{m:PHOTOURL}] photos.photo [{url_m:PHOTOURL}]

我将更多地研究jQuery循环。有什么想法吗?

2 个答案:

答案 0 :(得分:1)

奇怪的是,这些文档没有提到获得农场。你可以在$ .each循环中调试你的项目,看看你得到了什么? http://www.flickr.com/services/api/flickr.photos.search.html

虽然假设您获得了所有这些内容,但它显然是正确的URL格式: http://www.flickr.com/services/api/misc.urls.html

修改 你能告诉我这说的是什么(在警报框中):

$.each(data.photos.photo, function(i,item){
  var url = 'http://farm'+ item.farm +'.static.flickr.com/' + item.server +'/'+ item.id +'_'+ item.secret +'_m.jpg';
  alert(url);
});

答案 1 :(得分:0)

URL不是JSON对象,因此您无法解析它。 您正在尝试获取网址参数。 包括以下功能并像这样使用它。

lat = querySt('lat');
lon = querySt('lon');


function querySt(ji) {

    hu = window.location.search.substring(1);

    gy = hu.split("&");

        for (i=0;i<gy.length;i++) {

            ft = gy[i].split("=");

            if (ft[0] == ji) {

            return ft[1];

        }

    }

}

您可能想要修改此部分

hu =window.location.search.substring(1);

hu = yourURLVariable;

如果您从其他地方获取网址。