有人可以告诉我这里我做错了什么吗?
我正在尝试使用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循环。有什么想法吗?
答案 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;
如果您从其他地方获取网址。