2012-07-27 109 views
0

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

我需要內部的走存在於實際項目中的集合。

我如何做到這一點?

最好的問候,

米爾頓

+3

後JSON。我不認爲你發佈的是通過JSON迭代的正確方法。 – AdityaParab 2012-07-27 17:34:41

+0

數據是什麼樣的? – james31rock 2012-07-27 17:37:50

+0

我用jSon Data編輯過我的帖子。 – mcamara 2012-07-27 17:54:21

回答

1

asssuming要通過所有Tarifas環JSON數據內。您可以使用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); 
     }); 
    }); 
+0

我在第一篇edite文章中添加了jSon數據! – mcamara 2012-07-27 17:55:18

+0

我正在使用jQuery。 – mcamara 2012-07-27 18:06:34

+0

存在一種使用jQuery做到這一點的方法嗎? – mcamara 2012-07-27 18:24:04