2012-05-21 21 views
7

Json ile çalışıyorum ve neredeyse ihtiyacım olan şeylere sahibim. Görüntülenecek doğru bilgiyi alıyorum ancak bir dizinin her bir öğeyi bir değişkene geçirmem gerekiyor ve sonra değişkeni yazdıracağım. Her dizideki tüm öğeleri görüntülemek istiyorum. Çalıştığım json verileri bir faturalandırma uygulamasından (www.curdbee.com) ve bir müşterinin her faturasını göstermeye çalışıyorum. Göstermek istediğim veriler, her satır öğesi, satır öğesi fiyatı ve toplam tutardır. İşte benim kodum:Bir json dizisindeki tüm öğeleri görüntüleme

$(document).ready(function() { 


    $.getJSON('https://nspirelab.curdbee.com/invoices.json?api_token=__token__', function(data){ 
     $.each(data, function(index, item){ 
      var total = item.invoice.total_billed; 
      var lineItemName1 = item.invoice.line_items[0].name_and_description; 
      var lineItemName2 = item.invoice.line_items[1].name_and_description; 
      var lineItemPrice1 = item.invoice.line_items[0].price; 
      var lineItemPrice2 = item.invoice.line_items[1].price; 

      $('#results').append('<div class="lineItem"><ul><li>' + lineItemName1 + lineItemPrice1 + '</li><li>' + lineItemName2 + lineItemPrice2 + '</li><li>' + total + '</li></ul></div>'); 
     }); 

    }); 

}); 
+1

Sizin API belirteci gösteriyor. – jmort253

+0

O zaman bile, veri dökümlerinde hala görünebilir, burada hiçbir şey gerçekten silinmez. Güvende olmak için yeni bir jeton almayı şiddetle tavsiye ediyorum :) – jmort253

+4

Yikes teşekkürler! Güvende olmak için yeni bir token var. – user715564

cevap

5

yuvalanmış döngü (jQuery veya, iç içe geçmiş bir $.each()) iş yapacak:

$.getJSON('https://nspirelab.curdbee.com/invoices.json?api_token=&client=104929', function(data){ 
    $.each(data, function(index, item){ 
     // create an empty ul (initially disconnected from the DOM) 
     var $ul = $("<ul/>"); 

     // iterate over the line items 
     $.each(item.invoice.line_items, function(i, lineItem) { 
     // create an li element with the line details and append 
     // it to the ul 
     $ul.append($("<li/>").html(lineItem.name_and_description + lineItem.price)); 
     }); 

    // add the totals to the end of the ul 
    $ul.append($("<li/>").html(item.invoice.total_billed)); 

    // create a new div, append the ul to it, and append the div to results 
    $('#results').append($('<div class="lineItem"/>').append($ul)); 
    }); 
}); 
0

Böyle şeyleri daha kolay hale getirmek için orada çok sayıda kütüphane var. Neleri kaçırdığınızı görmek için "javascript şablonları" araması yapın ve bunun için seçebileceğiniz çeşitli kütüphaneler hakkında bilgi edinin.

+0

Tamam teşekkürler. Js/jquery/json’da yeniyim, bu yüzden javascript şablonlarına kesinlikle göz atacağım. – user715564

+0

havalı. Bunu kazandığınızda bunalmış hissetmeyin ... kaç insanın kendileri hakkında düşündükleri gerçekten çok saçma bir şey "hey ne ihtiyacın olduğunu biliyor musun? Başka bir js kütüphane oluşturuyor. Bunu bugün inşa edeceğim". Tipik kullanım için, hepsi hemen hemen aynıdır, bu yüzden doğru olanı seçmek için strese girmeyin. –

0

Sorunuzu doğru anladıysam, aradığınız şeyin bir çeşit yinelenen mekanizmalar olduğunu düşünüyorum, underscore.js'u deneyin.

İlgili konular