0

json コレクションがあり、各アイテム内に他のコレクションがあります。

私は最初のjson項目を歩いています:

$.each(data, function (index, element) {
    var tmp = $('#itemBusca').html();
    $('#buscas').append(_.template(tmp, element));
});

[{
    "Codigo": "692547",
    "Afiliacao": "RS",
    "Nome": "155 HOTEL",
    "Provincia": "BRSAO",
    "NomeProvincia": "SAO PAULO",
    "Categoria": "3",
    "DataEntrada": "20120728",
    "DataSaida": "20120730",
    "Marca": null,
    "Endereco": "RUA MARTINHO PRADO, 173",
    "Descricao": "O 155 Hotel trabalha com o conceito de Low Cost de hotel econômico, oferecendo praticidade e comodidade a um baixo custo. Nosso Hotel está instalado no bairro Consolação, num dos melhores pontos do centro da cidade de São Paulo, pois está cercado por ótimas opções gastronômicas e da Avenida Augusta, além de fácil acesso para shoppings, aeroportos, teatros, cinemas, roteiros de compras e a poucos metros do metrô Anhangabaú. Além de oferecer aos seus hóspedes um espaço incomparável em São Paulo, o Hotel 155 busca através de novas tecnologias de inteligência ambiental manter-se como uma instituição sustentável com o reuso das águas da chuva e também sistema economizador de energia. Juntos estes fatores permitem  o 155 a ser um hotel econômico, oferecendo um preço justo aos visitantes da cidade de São Paulo.\r\nOs hóspedes do hotel poderão contar com serviço de Concierge para orientação e apoio e internet central gratuita. Na área de convenções serão duas salas de reuniões para pequenos e médios eventos, além de serviço ágil e prático.\r\n\r\n",
    "Thumbnail": "http://hoteles.internos.hotusa.com/upload/hoteles/web/thum/692547.jpg",
    "Foto": "http://www.hotelresb2b.com/images/hoteles/264280_fotpe1_FACHADA.jpg",
    "Latitude": "-23.550278",
    "Longitude": "-46.645846",
    "Tarifas": [{
        "CodigoQuarto": "SG",
        "Descricao": "Individual",
        "CodigoRefeicao": "BB",
        "Preco": "267.84",
        "Moeda": "DO",
        "Disponibilidade": "OK",
        "Linhas": ["SG#2#VR#133.92#0#BB#OK#20120728#20120729#DO#1-0#0#0#0#", "SG#2#VR#133.92#0#BB#OK#20120729#20120730#DO#1-0#0#0#0#"]
    }, {
        "CodigoQuarto": "DU",
        "Descricao": "Dobleuso (para 1 pers)",
        "CodigoRefeicao": "BB",
        "Preco": "267.84",
        "Moeda": "DO",
        "Disponibilidade": "OK",
        "Linhas": ["DU#2#VR#133.92#0#BB#OK#20120728#20120729#DO#1-0#0#0#0#", "DU#2#VR#133.92#0#BB#OK#20120729#20120730#DO#1-0#0#0#0#"]
    }]
}]

実際のアイテム内に存在するコレクションの中を歩く必要があります。

どうすればいいですか?

よろしくお願いします、

ミルトン

4

1 に答える 1

1

JSON データ内のすべての Tarifas をループしたいとします。データが JSON オブジェクトであると仮定すると、JSON.Parse を使用できます。

    var items = JSON.parse(data);
    if (items != null || !($.isEmptyObject(items))) {

        var firstLevel;
        var i;
        var cnt = items.length;

        for (i = 0; i < cnt; i++) {

            firstLevel = items[i];

            if (firstLevel) {

                var tarifas = firstLevel.Tarifas;
                var x;
                var xcnt = tarifas.length;
                for (x = 0; x < xcnt; x++) {
                    var currentTarifas = tarifas[x];
                    if (currentTarifas) {
                        if (currentTarifas.CodigoQuarto == "SG") {

                            // do some stuff, you can alert all the current tarifas properties if you want
                            alert(currentTarifas.CodigoRefeicao);
                            alert(currentTarifas.Moeda);
                        }

                    }
                }
            }

        }


    }

jqueryの方法を理解していると仮定すると、これはうまくいくはずです

 $.each(data, function (i, element) {
        var tmp = $('#itemBusca').html();
        $('#buscas').append(_.template(tmp, element));

        $.each(element.Tarifas, function (x, tarifas) {
            alert(tarifas.CodigoQuarto);
        });
    });
于 2012-07-27T17:48:18.343 に答える