0

私は別のドメインからjsonデータを取得する短いコードを持っています。jsonコードの初心者なので、たとえば次のコードで、カテゴリの下のデータのみを取得する方法を理解できません。

$.getJSON("http://api.anywayanyday.com/api/NewRequest/?Route=2406MOWLON&AD=1&CN=0&CS=E&Partner=testapic&_Serialize=JSON&callback=?", function(data) {
    var code=data.Id;
    $.getJSON("http://api.anywayanyday.com/api/Fares/?R="+code+"&V=Matrix&VB=true&L=ru&_Serialize=JSON&callback=?", function(data) {
        var items = [];
        $.each(data, function(key, val) {
            items.push('<li>'+key+': '+val+'</li>');
        });
        $('<ul/>', {
            'class': 'my-new-list',
            html: items.join('')
        }).appendTo('#data2');
    });
});

通貨、言語、並べ替えなどのリストを取得しています。航空会社のカテゴリと内部に多くのオブジェクトがあります。必要なのは、これらの航空会社のオブジェクトとその名前だけを取得することです (少なくともそれらは json データリストに含まれている必要があります) )、 どうすればいいのですか?!

助けてくれてありがとう、本当に感謝しています!

4

2 に答える 2

1

これを試して、順不同のリストで航空会社名を取得できます

$.getJSON("http://api.anywayanyday.com/api/NewRequest/?Route=2406MOWLON&AD=1&CN=0&CS=E&Partner=testapic&_Serialize=JSON&callback=?", function(data) {
    var code=data.Id;
    $.getJSON("http://api.anywayanyday.com/api/Fares/?R="+code+"&V=Matrix&VB=true&L=ru&_Serialize=JSON&callback=?", function(data) {
        var items = [];
        $.each(data, function(key, val) {
            if(val && (typeof val == 'object' || typeof val == 'array')){
                if(key == "Airlines"){
                    var airlineNames = [];

                    for(var x in val)
                        airlineNames.push(val[x].Name);

                    items.push('<li>'+key+': <ul><li>'+airlineNames.join('</li><li>')+'</li></ul></li>');
                }
            }else{
                items.push('<li>'+key+': '+val+'</li>');
            }
        });
        $('<ul/>', {
            'class': 'my-new-list',
            html: items.join('')
        }).appendTo('#data2');
    });
});
于 2012-09-26T10:56:21.903 に答える
0

航空会社だけが必要な場合は、その名前がわかっている場合は「航空会社」をループできます。

var items = [];
$.each(data['Airlines'], function(i, airline) {
    items.push('<li>'+airline.Name+': '+airline.Code+'</li>');
});
于 2012-09-26T10:57:55.133 に答える