Итерация структуры JavaScript

Я пытаюсь проанализировать данные с помощью JSON.parse. После разбора я получаю данные ниже.

Как я могу выполнять итерацию ниже анализируемых данных? Анализируемые данные содержат массив массива.

{ "AcLedger" : [ { "BillRef" : "B4944", "ClientBalance" : 100, "ClientCr" : 40, "ClientDr" : 140, "ContraCode" : "C100", "DepositBalance" : 30, "DepositCr" : 20, "DepositDr" : 50, "DisbursementGroup" : "DG", "Narrative" : "Test Narrative1", "OfficeBalance" : 90, "OfficeCr" : 10, "OfficeDr" : 100, "OutstandingValue" : 200, "PostDate" : "/Date(1398149097737)/", "PostType" : "MA", "Reconciled" : false, "Reference" : "Ref001", "TransactionNumber" : 100, "Undone" : false, "VatCode" : "VAT100", "VatValue" : 103 }, { "BillRef" : "B4944", "ClientBalance" : 100, "ClientCr" : 40, "ClientDr" : 140, "ContraCode" : "C100", "DepositBalance" : 30, "DepositCr" : 20, "DepositDr" : 50, "DisbursementGroup" : "DG", "Narrative" : "Test Narrative 2", "OfficeBalance" : 90, "OfficeCr" : 10, "OfficeDr" : 100, "OutstandingValue" : 200, "PostDate" : "/Date(1398149097737)/", "PostType" : "MA", "Reconciled" : false, "Reference" : "Ref002", "TransactionNumber" : 789, "Undone" : false, "VatCode" : "VAT100", "VatValue" : 103 } ], "Client" : 100, "Deposit" : 0, "Office" : 0, "Transferable" : 0, "UnAllocatedCredit" : 0, "UnBilledAntiDisbursement" : 0, "UnBilledDisbursement" : 0, "UnPaidAntiDisbursement" : 0, "UnPaidBills" : 0
}

Кто-нибудь поможет мне достичь этого?

2 ответа

Для массива внутри другого массива:

var i, j;
var outerArrayItem, innerArrayItem;
for (i = 0; i < outerArray.length; i++) { // do something with the outer array outerArrayItem = outerArray[i]; for (j = 0; j < outerArray[i].length; j++) { // do something with the inner array innerArrayItem = outerArray[i][j] }
}

но я не думаю, что это массив внутри другого массива. Чтобы перемещаться по объекту (внутри {}), вы должны использовать:

var key, innerKey, item;
for (key in someObject) { // do something with that item: item = someObject[key]; for (innerKey in item) { // do something with item[innerKey] }
}


Данные не являются массивом массивов. Это объект (который я буду называть "данными"), который содержит много свойств, один из которых ("AcLedger") представляет собой массив объектов.

Один из способов итерации через массив AcLedger:

for (var i = 0; i < data.AcLedger.length; i++) { var array_item = data.AcLedger[i]; // Use array_item
}

licensed under cc by-sa 3.0 with attribution.