-3

私はapi.movi​​edb.comから受け取るこのJSONオブジェクトを持っています

これはかなりネストされた JSON オブジェクトであり、そこから特定のデータを取得する際に問題が発生しています。

これがオブジェクトの要点です

画像ポスター配列から具体的に「url」を取得する必要があります

この $.each を使用して反復しようとしました

しかし、問題は、var イメージが未定義であるため、エラーがスローされることです。

  $.each(data, function(i,item){
          images = data.posters.image.url;
          var name = "<div id='each'><p>" + item.name + "</p><br><img src=" + image + "><br><p>" + item.overview + "</p></div>";
          $("#result").append(name);
     //$("<img/>").attr("src", item.image).appendTo("#result");
  });

[
    {
        "score": null,
        "popularity": 3,
        "translated": true,
        "adult": false,
        "language": "en",
        "original_name": "Masculin feminin",
        "name": "Masculin feminin",
        "alternative_name": "Masculin féminin oder: Die Kinder von Marx und Coca Cola",
        "movie_type": "movie",
        "id": 4710,
        "imdb_id": "tt0060675",
        "url": "http://www.themoviedb.org/movie/4710",
        "votes": 7,
        "rating": 10,
        "runtime": 110,
        "certification": "",
        "overview": "The film stars French New Wave icon Jean-Pierre Léaud as Paul, a romantic young idealist and literary lion-wannabe who chases budding pop star, Madeleine (Chantal Goya, a real life Yé-yé girl).",
        "released": "1966-03-22",
        "posters": [
            {
                "image": {
                    "type": "poster",
                    "size": "thumb",
                    "height": 130,
                    "width": 92,
                    "url": "http://cf2.imgobject.com/t/p/w92/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            },
            {
                "image": {
                    "type": "poster",
                    "size": "w154",
                    "height": 217,
                    "width": 154,
                    "url": "http://cf2.imgobject.com/t/p/w154/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            },
            {
                "image": {
                    "type": "poster",
                    "size": "cover",
                    "height": 261,
                    "width": 185,
                    "url": "http://cf2.imgobject.com/t/p/w185/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            },
            {
                "image": {
                    "type": "poster",
                    "size": "w342",
                    "height": 482,
                    "width": 342,
                    "url": "http://cf2.imgobject.com/t/p/w342/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            },
            {
                "image": {
                    "type": "poster",
                    "size": "mid",
                    "height": 704,
                    "width": 500,
                    "url": "http://cf2.imgobject.com/t/p/w500/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            },
            {
                "image": {
                    "type": "poster",
                    "size": "original",
                    "height": 938,
                    "width": 666,
                    "url": "http://cf2.imgobject.com/t/p/original/issm1E827fK7KHMEdRORA9BoTPs.jpg",
                    "id": "4ea5ebb234f8633bdc0020cb"
                }
            }
        ],
        "backdrops": [
            {
                "image": {
                    "type": "backdrop",
                    "size": "thumb",
                    "height": 172,
                    "width": 300,
                    "url": "http://cf2.imgobject.com/t/p/w300/AnnWas1TyMRRyFuNT9bCZoeqg3t.jpg",
                    "id": "4ea5ebb734f8633bdc0020cf"
                }
            },
            {
                "image": {
                    "type": "backdrop",
                    "size": "poster",
                    "height": 448,
                    "width": 780,
                    "url": "http://cf2.imgobject.com/t/p/w780/AnnWas1TyMRRyFuNT9bCZoeqg3t.jpg",
                    "id": "4ea5ebb734f8633bdc0020cf"
                }
            },
            {
                "image": {
                    "type": "backdrop",
                    "size": "w1280",
                    "height": 736,
                    "width": 1280,
                    "url": "http://cf2.imgobject.com/t/p/w1280/AnnWas1TyMRRyFuNT9bCZoeqg3t.jpg",
                    "id": "4ea5ebb734f8633bdc0020cf"
                }
            },
            {
                "image": {
                    "type": "backdrop",
                    "size": "original",
                    "height": 768,
                    "width": 1336,
                    "url": "http://cf2.imgobject.com/t/p/original/AnnWas1TyMRRyFuNT9bCZoeqg3t.jpg",
                    "id": "4ea5ebb734f8633bdc0020cf"
                }
            }
        ],
        "version": 463,
        "last_modified_at": "2012-04-20 11:05:03 UTC"
    },
4

2 に答える 2

2
$.each(data, function(i,item){
    var name = item.name;
    var overview = item.overview;
    $.each(item.posters, function(i,poster){
        var name = "<div id='each'><p>" + name + "</p><br><img src=" + poster.image.url + "><br><p>" + overview + "</p></div>";
        $("#result").append(name);
    }
 });
于 2012-04-22T20:16:49.857 に答える
0

その JSON データを文字列変数 (たとえば、 という名前) に割り当てるとjsonString、次のようなものを使用してそれを JS オブジェクトに変換できます。

var jsObject = JSON.parse(jsonString);

その後、通常のメカニズムを介してプロパティにアクセスできます。したがって、最初のポスターの URL を取得するには: jsObject.posters[0].image.url

この手法は、IE 7 やその他の古いブラウザーでは機能しないことに注意してください。http://caniuse.com/jsonでサポート チャートを参照してください。

于 2012-04-22T20:16:37.720 に答える