У меня есть массив, который инициализируется с помощью
var detail = [];
// Have also tried var detail = new Array;
В остальной части моего кода я oop через набор данных, создающий объект следующим образом
while(true) {
var tempObj = {
qty : "",
size : "",
adr : "",
dir : ""
}
// Some Logic
tempObj.qty = val;
tempObj.size = val;
tempObj.adr = val;
tempObj.dir = val;
detail.push(tempObj);
}
Затем, когда я пытаюсь JSON .Stringify моего подробного массива отправить через запрос AJAX, он возвращает пустой массив []. Это также можно увидеть на скриншоте ниже консоли.
Примечание. Отступ внизу, вызывающий прототип как объект, связан с тем, что снимок экрана соответствует объекту, который я пытаюсь отправить на свой сервер. В этом объекте есть другие не основанные на массиве данные. Я хочу преобразовать массив в массив, чтобы он правильно отправлялся на сервер.
Что вызывает такое поведение и как его исправить?
Редактировать 1: Выполнение JSON .stringify (подробно)
var requestObj = {
field1: “a”,
field2: “b”,
field3: “c”,
data: JSON.stringify(detail)
}
Редактировать 2: Добавить полный блок кода
$("#submit-button").click(function() {
var reqDate = $("#reqDate").val();
var wonum = $("#wonum").val();
var svc = $("#svc").val();
var complaint = $("#complaint").val();
var comments = $("#comm").val();
var detail = new Array;
var topValid = false;
$(".tb-rw").each(function() {
var qty = $(this).find(".quantity");
var size = $(this).find(".size");
var adr = $(this).find(".address");
var dir = $(this).find(".direction");
var mgk = $(this).find(".mgKey");
var tempObj = {};
if(fail == true || topValid == true) {
alert("Please Make Sure all Inputs are Filled Out");
return;
} else {
//tempArr.push(qty.val(), size.val(), dir.val());
tempObj.qty = qty.val();
tempObj.size = size.val();
tempObj.dir = dir.val();
}
findSimilarJobs(adr.val(), mgk.val(), function(data) {
if(data != "clear") {
console.log("FAILED VALIDATION");
console.log(data);
adr.css('border-color', 'red');
alert("Please Make Sure all Addresses are Valid");
return;
} else {
//tempArr.push(adr.val());
tempObj.adr = adr.val();
}
detail.push(tempObj);
});
});
console.log("Preparing to send!");
var requestData = {
"requestedDate": reqDate,
"svc": svc,
"wonum": wonum,
"complaint": complaint,
"comment": comments,
"data": JSON.stringify(detail)
};
console.log(requestData);
console.log(JSON.stringify(detail));
});