2012-05-21 4 views
7

Я пытаюсь работать с json, и у меня почти все, что мне нужно. Я получаю правильную информацию для отображения, но мне нужно передать каждый элемент массива в переменную, а затем распечатать переменную. Я хотел бы отобразить все элементы в каждом массиве. Данные json, с которыми я работаю, - это приложение-фактурирование (www.curdbee.com), и я пытаюсь показать каждый счет-фактуру для клиента. Данные, которые я хочу показать, - это каждая позиция, цена позиции и общая сумма. Вот мой код:Показать все элементы в массиве json

$(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

Ваш апи маркер показывает. – jmort253

+0

Даже тогда он все еще может отображаться в дампах данных, ничего здесь никогда не удаляется. Я бы настоятельно советовал получить новый токен, просто чтобы быть в безопасности :) – jmort253

+4

Yikes thanks! Я получил новый токен, чтобы быть в безопасности. – user715564

ответ

5

вложенным циклом (или, в JQuery, вложенная $.each()) будет выполнять работу:

$.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

Есть смехотворное количество библиотек, чтобы сделать так, чтобы это было проще. Сделайте поиск по «шаблонам javascript», чтобы увидеть, что вам не хватает, и узнать о различных библиотеках, которые вы можете выбрать для этого.

+0

Хорошо большое спасибо. Я новичок в js/jquery/json, поэтому я обязательно рассмотрю шаблоны javascript. – user715564

+0

прохладный. не чувствую себя переполненным, когда ты копаешься в этом ... это действительно довольно абсурдно, как многие люди думали о себе «эй, ты знаешь, что нужен вольде», другая библиотека шаблонов js, я построю это сегодня ». для типичного использования, они все почти одинаковы, поэтому не стесняйтесь выбирать правильный –

0

Если я правильно понял ваш вопрос, я думаю, что то, что вы ищете, это своего рода механизмы итерации, попробуйте underscore.js.

Смежные вопросы