将ajax数据处理为JSON对象

时间:2017-06-06 22:26:55

标签: javascript json

我需要处理来自ajax调用的一些数据并填写JSON对象。 我在定义正确的循环时遇到了问题。

我定义了这个变量

var reportData = {
  "offerta": {
    "codice": offerta_corrente,
    "data": "",
    "oggetto": ""
  },
  "cliente": {
    "societa": "",
    "indirizzo": "",
    "cap": "",
    "citta": "",
    "provincia": ""
  },
  "sconti_totale": {
    "sconto1": sconto1,
    "sconto2": sconto2,
    "sconto3": sconto3
  },
  "zone": [],
};

然后从ajax调用我得到了这个数据:

[{
  "customer": [{
    "codcli": "CL0002",
    "societa": "ACME s.r.l",
    "indirizzo": "via S. Giovanni, 100",
    "citta": "",
    "provincia": "",
    "cap": "",
    "paese": ""
  }],
  "rows": [{
    "zona": "Area vendita",
    "codET": "PED-40-10102",
    "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
    "L": "100",
    "P": "100",
    "H": "25",
    "codfinET": "---",
    "descfinET": "grezzo",
    "umET": "NR",
    "qty": "2",
    "PrezzoSingolo": "257.4",
    "PrezzoTotale": "514.8",
    "Sconto1": "0",
    "Sconto2": "0",
    "Sconto3": "0"
  }, {
    "zona": "Area vendita",
    "codET": "PED-40-50000",
    "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
    "L": "100",
    "P": "100",
    "H": "25",
    "codfinET": "---",
    "descfinET": "grezzo",
    "umET": "NR",
    "qty": "2",
    "PrezzoSingolo": "257.4",
    "PrezzoTotale": "514.8",
    "Sconto1": "0",
    "Sconto2": "0",
    "Sconto3": "0"
  }, {
    "zona": "Area magazzino",
    "codET": "PED-40-10102",
    "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
    "L": "100",
    "P": "100",
    "H": "25",
    "codfinET": "---",
    "descfinET": "grezzo",
    "umET": "NR",
    "qty": "1",
    "PrezzoSingolo": "257.4",
    "PrezzoTotale": "257.4",
    "Sconto1": "0",
    "Sconto2": "0",
    "Sconto3": "0"
  }, {
    "zona": "Area vetrina",
    "codET": "PED-40-10102",
    "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
    "L": "100",
    "P": "100",
    "H": "25",
    "codfinET": "---",
    "descfinET": "grezzo",
    "umET": "NR",
    "qty": "1",
    "PrezzoSingolo": "257.4",
    "PrezzoTotale": "257.4",
    "Sconto1": "0",
    "Sconto2": "0",
    "Sconto3": "0"
  }]
}]

我用data [0] .rows提取了行数组,但是我无法构建循环来转换和构建这个最终的JSON对象

{
  "offerta": {
    "codice": "2017-00007",
    "data": "",
    "oggetto": ""
  },
  "cliente": {
    "societa": "ACME s.r.l",
    "indirizzo": "via S. Giovanni, 100",
    "cap": "",
    "citta": "",
    "provincia": ""
  },
  "sconti_totale": {
    "sconto1": "0.00",
    "sconto2": "0.00",
    "sconto3": "0.00"
  },
  "zone": [{
    "nome": "Area vendita",
    "items": [{
      "zona": "Area vendita",
      "codET": "PED-40-10102",
      "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
      "L": "100",
      "P": "100",
      "H": "25",
      "codfinET": "---",
      "descfinET": "grezzo",
      "umET": "NR",
      "qty": "2",
      "PrezzoSingolo": "257.4",
      "PrezzoTotale": "514.8",
      "Sconto1": "0",
      "Sconto2": "0",
      "Sconto3": "0"
    }, {
      "zona": "Area vendita",
      "codET": "PED-40-50000",
      "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
      "L": "100",
      "P": "100",
      "H": "25",
      "codfinET": "---",
      "descfinET": "grezzo",
      "umET": "NR",
      "qty": "2",
      "PrezzoSingolo": "257.4",
      "PrezzoTotale": "514.8",
      "Sconto1": "0",
      "Sconto2": "0",
      "Sconto3": "0"
    }]
  }, {
    "nome": "Area magazzino",
    "items": [{
      "zona": "Area magazzino",
      "codET": "PED-40-10102",
      "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
      "L": "100",
      "P": "100",
      "H": "25",
      "codfinET": "---",
      "descfinET": "grezzo",
      "umET": "NR",
      "qty": "1",
      "PrezzoSingolo": "257.4",
      "PrezzoTotale": "257.4",
      "Sconto1": "0",
      "Sconto2": "0",
      "Sconto3": "0"
    }]
  }, {
    "nome": "Area vetrina",
    "items": [{
      "zona": "Area vetrina",
      "codET": "PED-40-10102",
      "descET": "PEDANA ESP. CON PIANO IN LAMIERA ALL. MANDORLATO",
      "L": "100",
      "P": "100",
      "H": "25",
      "codfinET": "---",
      "descfinET": "grezzo",
      "umET": "NR",
      "qty": "1",
      "PrezzoSingolo": "257.4",
      "PrezzoTotale": "257.4",
      "Sconto1": "0",
      "Sconto2": "0",
      "Sconto3": "0"
    }]
  }]
}

我对循环来填充JSON对象的“区域”部分感兴趣。

这是我正在处理的一段没有任何好结果的代码......请帮助我以正确的方式前进。

for (index = 0; index < data[0].rows.length; ++index) {
  if (data[0].rows[index].zona != currzona) {
    if (index > 0) {
      newzona.push(curr_items)
    };
    // aggiungo l'elemento zona
    var newzona = reportData.zone.push({
      "nome": data[0].rows[index].zona
    });
    // aggiungo il nodo dell'articolo
    var curr_items = new Array();
  }
  curr_items.push(data[0].rows[index]);
  currzona = data[0].rows[index].zona;
  console.log(currzona);
}

0 个答案:

没有答案