2

picasaweb からの json: http://picasaweb.google.com/data/feed/api/user/100489095734859091829?kind=album&access=visible&alt=json-in-script&thumbsize=144c

jsonview によって整理された出力を次に示します。これら 2 つはどちらも同じ「レベル」に表示されますが、ツリーの下にいくつかの分岐があります (実際にはまだ json を「取得」していません。わかりますか?!)。

gphoto$id: {
$t: "5068801490268828641"
},
gphoto$name: {
$t: "ByronBay"
}

「gphoto$name 'ByronBay' が与えられたので、その gphoto$id をお願いします!」と言いたいです。

いくつかの優れた json ブラウザーを見つけました。1 つのオンライン 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 がアルバム タイトルの兄弟であることがわかります。

特定の親から「子」データを取得する他のあらゆる方法を見つけることができますが、このような兄弟データに関しては、本当に空白を描いています。

4

1 に答える 1

2

オブジェクトは両方とも同じ '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');
  }
});
于 2011-06-14T23:04:11.133 に答える