循环通过json里面的json

时间:2012-07-27 17:30:35

标签: jquery json

我有一个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#"]
    }]
}]

我需要走进实际项目中存在的集合。

我是怎么做到的?

最诚挚的问候,

米尔顿

1 个答案:

答案 0 :(得分:1)

假设你想循环遍历JSON数据中的所有Tarifas。您可以使用JSON.Parse,假设数据是JSON对象。

    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);
        });
    });