如何解决从json兄弟中提取数据?
| 来自picasaweb的一些json: http://picasaweb.google.com/data/feed/api/user/100489095734859091829?kind=album&access=visible&alt=json-in-script&thumbsize=144c 这是jsonview整理的输出-这两个都显示在同一\“ level \”上,但是树上有几个分支(我真的还没有\“ get \” 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是专辑标题的同级。
我可以找到从给定的父级获取“子级”数据的各种其他方式,但是当涉及到这样的同级数据时,我确实是一个空白。
解决方法
这些对象都是同一个\'parent \'
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\');
}
});
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。