繁体   English   中英

从JSON feed构造URL

[英]Construct the URL from JSON feed

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

我正在尝试构建图像URL,但现在使用flickr.photos.search方法(我需要显示接近访客地理位置的图像),我在使用groups_pool.gne之前已经使用过它,并且JSON提要不同(更简单)格式化但现在..

URL有效,我得到了包含我需要的所有数据(服务器场,服务器,机密和ID)的数组,但是无法为照片构造URL。

$.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的Extras中添加了url_m以获取JSON feed,并且在feed中获得了完整的URL,这应该有所帮助,因为我不必将其余部分连接在一起,但仍然无法正常工作。

我无法使它正常工作,而且据我所知非常简单,这非常令人沮丧。 好吧,显然不适合我。

在循环中获取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中,我能够成功提取照片,我这样进入了media.m:

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

请注意,我有物品,然后是媒体,然后是m,这是它自己的价值! 实际上是项目。[媒体:{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}]照片。照片[{url_m:PHOTOURL}]

我将对jQuery循环进行更多研究。 有任何想法吗?

奇怪的是,这些文档没有提到获得农场。 您可以在$ .each循环中console.log您的项目并查看得到了什么吗? 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);
});

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

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;

如果您从其他地方获取URL。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM