gpt4 book ai didi

javascript 数组序列化

转载 作者:行者123 更新时间:2023-12-03 07:37:12 25 4
gpt4 key购买 nike

我有这样的代码。主要问题是 var jsonOfLog = JSON.stringify(data); 给出了正确的 JSON "[{"name":"Jhon"},{"name":"Nick"}, {"name":"Sanders"}]"var jsonOfLog = JSON.stringify(test); 给出 未定义

为什么?是类型问题还是其他问题?如何解决这个问题?

function AppViewModel() {

self = this;
self.items = ko.observableArray();
self.addItems = function () {
self.items.push({ Name: 'Test', Date: 'Test', Time: 'Test'});
}
function time_format(d) {
hours = format_two_digits(d.getHours());
minutes = format_two_digits(d.getMinutes());
seconds = format_two_digits(d.getSeconds());
return hours + ":" + minutes + ":" + seconds;
}
function format_two_digits(n) {
return n < 10 ? '0' + n : n;
}
self.save = function () {
data = [{ name: 'Jhon' }, { name: 'Nick' }, { name: 'Sanders' }];
var test = self.items;
var jsonOfLog = JSON.stringify(test);

debugger;
$.ajax({
type: 'POST',
dataType: 'text',
url: "ConvertLogInfoToXml",
data: "jsonOfLog=" + jsonOfLog,
success: function (returnPayload) {
console && console.log("request succeeded");
},
error: function (xhr, ajaxOptions, thrownError) {
console && console.log("request failed");
},

processData: false,
async: false
});
}
self.capitalizeLastName = function () {
debugger;

var date = $("#date").val();


$.ajax({
cache: false,

type: "GET",

url: "GetByDate",

data: { "date": date },

success: function (data) {

var result = "";

$.each(data, function (id, item) {
var tempDate = new Date();
var tempTime = item.Time;
debugger;
tempDate =new Date(parseInt(item.Date.replace("/Date(", "").replace(")/", ""), 10));
self.items.push({ Name: item.Name, Date: (tempDate.getMonth() + 1) + '/' + tempDate .getDate() + '/' + tempDate.getFullYear(), Time: tempTime.Hours });
});
},

error: function (response) {
debugger;
alert('eror');
}
});

}
}

ko.applyBindings(new AppViewModel());

最佳答案

我在您的代码中发现了一些可能导致该问题的内容。

首先,test 变量是对 self.items 的引用,它是一个 Knockout observableArray 而不是原生 JavaScript 数组。我对 Knockout 不太熟悉,但这可能不会序列化为数组。

此外,在构造函数的第一行,您在不使用 var 的情况下分配给 self。这是为全局变量而不是局部变量赋值。如果您的代码中其他地方有类似的构造,则 self 引用可能会被覆盖。

关于javascript 数组序列化,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35560579/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com