来自picasaweb的一些json: http://picasaweb.google.com/data/feed/api/user/100489095734859091829?kind=album&access=visible&alt=json-in-script&thumbsize=144c
这是由jsonview整理的输出 - 这两个都出现在同一个“级别”,但在树下有几个分支(我真的不“得到”json了 - 你能说出来吗?!)。
gphoto$id: {
$t: "5068801490268828641"
},
gphoto$name: {
$t: "ByronBay"
}
我想说“鉴于gphoto $ name'ByronBay',我喜欢它的gphoto $ id!”。
我找到了几个很好的json浏览器;一个在线Java:http://pivot.apache.org/demos/json-viewer.html和Firefox / Chrome扩展程序:http://jsonview.com/
但仍然没有更聪明的人。我正在尝试使用的脚本http://oss.oetiker.ch/jquery/jquery.EmbedPicasaGallery.js很棒,但它要求用户提供相册ID,这意味着打开RSS并挖掘出正确的数字。但我在返回的json中看到,专辑ID是专辑标题的兄弟。
我可以找到从给定父级获取“子”数据的各种其他方法,但是当涉及到像这样的兄弟数据时,我真的是一个空白。
答案 0 :(得分:2)
这些对象都是同一个“父”json.feed.entry[index]
的成员,因此您可以浏览json.feed.entry
并查看gphoto$name.$t
$.getJSON('http://picasaweb.google.com/data/feed/api/user/'+
'100489095734859091829?kind=album&access=visible&'+
'alt=json&thumbsize=144c&callback=?',
function(data) {
for(var i=0;i<data.feed.entry.length;++i)
{
if(data.feed.entry[i].gphoto$name.$t=='ByronBay')
{
alert(data.feed.entry[i].gphoto$id.$t);return;
}
}
});
或使用jQuery的grep():
$.getJSON('http://picasaweb.google.com/data/feed/api/user/'+
'100489095734859091829?kind=album&access=visible&'+
'alt=json&thumbsize=144c&callback=?',
function(data) {
arr = jQuery.grep(jQuery.makeArray( data.feed.entry ), function(a){
return (a.gphoto$name.$t=='ByronBay');
});
if(arr.length)
{
alert(arr[0].gphoto$id.$t);
}
else
{
alert('no match');
}
});