Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/arrays/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
迭代JavaScript结构_Javascript_Arrays - Fatal编程技术网

迭代JavaScript结构

迭代JavaScript结构,javascript,arrays,Javascript,Arrays,我正在尝试使用JSON.parse解析数据。我在解析后得到以下数据 如何遍历下面解析的数据?解析后的数据包含数组的数组 { "AcLedger" : [ { "BillRef" : "B4944", "ClientBalance" : 100, "ClientCr" : 40, "ClientDr" : 140, "ContraCode" : "C100", "DepositBalance" : 30,

我正在尝试使用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
}

有人能帮我做到这一点吗?

对于另一个阵列中的阵列:

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]
    }
}

数据不是数组的数组。这是一个我称之为“数据”的对象,它包含许多属性,其中AcLedger是一个对象数组

遍历AcLedger数组的一种方法是:

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

    // Use array_item
}

解析数据的可能副本是一个对象,该对象有一个属性,即对象数组。这里没有数组。下面的代码返回我复制的数据。结果我得到了数据。var result=JSON.parsexmlhttp.responseText.d;当我尝试访问var ledgers=result.AcLedger时。上面写着未定义,看这个。它将弹出两个警报对话框,显示每个数组元素的BillRef属性。它使用与上面相同的数据以及我建议的解决方案,我已经在JSFIDLE中更新了这些数据。我的json数据是字符串格式的。请检查一下好吗?JSON.parse通常不会返回字符串。请提供原始JSON数据和JSON.parse调用。
for (var i = 0; i < data.AcLedger.length; i++) {
    var array_item = data.AcLedger[i];

    // Use array_item
}