0

私はそのことについてjsとWeb開発に慣れていないので、助けを求めています。

フォーマットして別のリクエストを行うのに十分な情報を取得しようとしています。これは私がこれまでに持っているものです

JavaScript

$( document ).ready(function(sb_shows) {
    $.getJSON( "http://<myname>/api/<apikey>/?cmd=shows&callback=?", function(shows_obj) { 
        //$.each(shows_obj, function(key, value) { 
        if ( shows_obj.result == "success") {
            document.write(shows_obj.result);

            $.each(shows_obj.data, function(key, value) { 

                $.each(this.cache function(key, value) { 
                    document.write( "<p> "+value.banner+"<p>");
                });

                document.write( "<p>"+value.show_name+" - "+value.tvrage_id+ "<p>");

            });
        }
        else {
            document.write("fail..");
        }

    });
});

JSON サンプル

{
"data": {
    "72023": {
        "air_by_date": 0, 
        "cache": {
            "banner": 1, 
            "poster": 1
        }, 
        "language": "en", 
        "network": "HBO", 
        "next_ep_airdate": "", 
        "paused": 0, 
        "quality": "SD", 
        "show_name": "Deadwood", 
        "status": "Ended", 
        "tvrage_id": 3267, 
        "tvrage_name": "Deadwood"
    }, 
    "72231": {
        "air_by_date": 1, 
        "cache": {
            "banner": 1, 
            "poster": 1
        }, 
        "language": "en", 
        "network": "HBO", 
        "next_ep_airdate": "2013-09-13", 
        "paused": 0, 
        "quality": "HD720p", 
        "show_name": "Real Time with Bill Maher", 
        "status": "Continuing", 
        "tvrage_id": 4950, 
        "tvrage_name": "Real Time With Bill Maher"
    }, 

}, 
"message": "", 
"result": "success"
}

私が達成したいと思っているのは、データの下の id (例: 72023 と 72231) を取得することです。当初は、次のようなことができると思っていました。

$(this).parent()

ただし、それはオブジェクトであり、機能していないようです

また、以下のようなサブ obj を反復できるようにしたいと思います

$.each(shows_obj.data, function(key, value) { 
    $.each($(this).cache function(key, value) { 

        document.write( "<p> "+value.banner+"<p>");

    });
    document.write( "<p>"+value.show_name+" - "+value.cache.banner+ "<p>");
});

あらゆる推奨事項/提案を歓迎します。提案を説明してください、私はちょっと遅いです:)

4

1 に答える 1

0

オブジェクトの最初の$.each()呼び出しでは、あなたが実際に探している ID 番号です。Google はすぐに役立つJSON の紹介をしてくれました。datakey

jQuery.each のドキュメントによると、thisキーワードはキーワードと同じvalueです。dom ( ) をトラバースするのではなく、オブジェクトを関数に渡す必要があり$.each($(this).cache, ...)ます。前のケースと同じようにトラバースすると、コールバックが 2 回呼び出されます。$.each(this.cache, ...)$.each(value.cache, ...)$(..)$.each()this.cache

// first
key => banner
value => 1

// second
key => poster
value => 1

キャッシュからバナーを取得したい場合は、次のようvalue.cache.bannerにします。元の$.each(shows_obj.data, ...)

于 2013-08-05T20:40:18.873 に答える