gpt4 book ai didi

javascript - 从 JSON 对象周围删除双引号 - JS

转载 作者:行者123 更新时间:2023-11-28 01:56:40 24 4
gpt4 key购买 nike

我有一个已序列化并解析为 JSON 字符串的表单。其中一个表单字段是包含 JSON 对象的隐藏字段。我使用另一个教程中的以下函数来转换我的表单数据:

$.fn.serializeObject = function()
{
var o = {};
var a = this.serializeArray();
$.each(a, function() {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
o[this.name] = this.value || '';
}
});
return o;
};

这很有效,除了我的包含 JSON 的隐藏字段用双引号括起来,当返回到我的 Controller 时它不会绑定(bind)。如果我手动删除双引号,一切都会正常。

给人的印象是:

{"Package":"[{"Qty":"15"}]","Fname":"test name"}

需要:

{"Package":[{"Qty":"15"}],"Fname":"test name"}

我如何修改上述函数来解决这个问题?

谢谢!

更新

在新版本的函数中考虑了这一点:

$.fn.serializeObject = function () {
var o = {};
var a = this.serializeArray();
$.each(a, function () {
if (o[this.name] !== undefined) {
if (!o[this.name].push) {
o[this.name] = [o[this.name]];
}
o[this.name].push(this.value || '');
} else {
if (this.value.charAt(0) == "[") {
o[this.name] = JSON.parse(this.value);
}
else {
o[this.name] = this.value || '';
}
}
});
return o;
};

最佳答案

JSON.stringify 括起对 serializeObject 的调用相反,它应该确保 JSON 有效,即

var json = JSON.stringify(form.serializeObject());

关于javascript - 从 JSON 对象周围删除双引号 - JS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19003866/

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