问题遇到的现象和发生背景
当我查询出来的数据 有三个对象,这三个对象的数据 我想要放到一个json字符串里面,现在问题是我只能取到最后一次的数据。会覆盖数据。
问题相关代码,请勿粘贴截图
function sendData(){
$("#lev_id table tr").each(function () {
var chk=$(this).find("td input[type='checkbox']")[0];
var REQUEST = {}, head = {}, data = {}, req = {}, item_list = {}, items_list = {}, main = {}, item = {};
var item = []; var items = [];
//// Head
head.ACCOUNT = "ESB_TEST_MES",
head.PASSWORD = "mestest@esb",
head.CONSUMER = "SAP";
head.COUNT = "1";
var TRID = $(this).find("td").eq(12).text();
var strbu = TRID.substring(14, TRID.lastIndexOf('_') + 1);
var RadNum = Math.floor(Math.random() * 10000);
var index = "BAW_MES_E123_" + strbu+RadNum;
head.TRANSACTIONID = index;
head.SRVLEVEL="1";
head.COMPANY = "BAW";
//读取选中行的数据
if(chk!=undefined && chk.checked){
if ($(this).find("td").eq(11).text() == "已回传")
{
alert("请选择未回传数据进行回传!");
return;
}
if ($(this).find("td").eq(9).text() == "" || $(this).find("td").eq(9).text() == null || $(this).find("td").eq(10).text()=="" || $(this).find("td").eq(10).text()==null) {
alert("VIN码和变更时间必须填写!");
return;
}
var param = getSearchParams();
for (var i = 0; i <param.length; i++) {
//item
var ZYL02 = param[i].ZYL02;
var ZYL01 = param[i].ZYL01;
var ZID = param[i].ZID;
var DATUV = "20220419";
var WERKS = param[i].WERKS;
var AETXT = param[i].AETXT;
var AENNR = param[i].AENNR;
//items
var ZWYBS = param[i].ZWYBS;
var ZMESVIN = param[i].ZMESVIN;
var ZMESDATE = param[i].ZMESDATE;
var IDNRK = param[i].IDNRK;
var ZYL04 = param[i].ZYL04;
var SORTF = "X";
var ZYL06 = param[i].ZYL06;
var ZCZZT = param[i].ZCZZT;
var AUSCH = "";
var ZYL05 = param[i].ZYL05;
var ZYL03 = param[i].ZYL03;
var MATNR = param[i].MATNR;
// Items
item_list.ZYL02 = ZYL02;
item_list.ZYL01 = ZYL01;
item_list.ZID = ZID;
item_list.DATUV = DATUV;
item_list.WERKS = WERKS;
item_list.AETXT = AETXT;
item_list.AENNR = AENNR;
item_list.ZYL03 = ZYL03;
item_list.MATNR = MATNR;
//item_list.ITEM = items_list;
items_list.ZWYBS = ZWYBS;
items_list.ZMESVIN = ZMESVIN;
items_list.ZMESDATE = ZMESDATE;
items_list.IDNRK = IDNRK;
items_list.ZYL04 = ZYL04;
items_list.SORTF = SORTF;
items_list.ZYL06 = ZYL06;
items_list.ZCZZT = ZCZZT;
items_list.AUSCH = AUSCH;
items_list.ZYL05 = ZYL05;
//创建最外层响应头
req.REQUEST = {};
//赋值
data.HEAD = head;
data.DATA = REQUEST;
REQUEST.ITEM = item;
main.ITEMS = items;
req.REQUEST = data;
}
//追加
item_list.ITEMS = items;
item.push(item_list);
items.push(items_list);
var JsonData = JSON.stringify(req);
});
}
这是我得到的json格式数据:
{
"REQUEST": {
"HEAD": {
"ACCOUNT": "ESB_TEST_MES",
"PASSWORD": "mestest@esb",
"CONSUMER": "SAP",
"COUNT": "1",
"TRANSACTIONID": "BAW_MES_E123_20220419193456191_1661",
"SRVLEVEL": "1",
"COMPANY": "BAW"
},
"DATA": {
"ITEM": [
{
"ZYL02": "1",
"ZYL01": "",
"ZID": "12345671",
"DATUV": "20220419",
"WERKS": "1081",
"AETXT": "行项目新增",
"AENNR": "000000001000",
"ZYL03": "1",
"MATNR": "CP12",
"ITEMS": [
{
"ZWYBS": "123",
"ZMESVIN": "SVU20220711LEDHEE",
"ZMESDATE": "2022-08-11",
"IDNRK": "NN11",
"ZYL04": "1",
"SORTF": "X",
"ZYL06": "1",
"ZCZZT": "I",
"AUSCH": "",
"ZYL05": "1"
}
]
}
]
}
}
}
运行结果及报错内容
每次push进去的数据都是最后一一个对象的数据,无法把3个对象的数据都push进去。
我的解答思路和尝试过的方法
网上有在push前创建空对象 或者清空数据,试过了达不到想要的效果,会把我的json格式打乱。
我声明只能用 var 这样的类型。
我想要达到的结果
三个对象都push 并且不会打乱我的json格式数据。