我正在尝试将表单序列化为 JSON 对象,以便我可以通过 AJAX 发送数据。我正在使用以下功能:
$.fn.serializeObject = function() {
var arrayData, objectData;
arrayData = this.serializeArray();
objectData = {};
$.each(arrayData, function() {
var value;
if (this.value != null && this.value != '') {
value = this.value;
} else {
value = null;
}
if (objectData[this.name] != null) {
if (!objectData[this.name].push) {
objectData[this.name] = [ objectData[this.name] ];
}
objectData[this.name].push(value);
} else {
objectData[this.name] = value;
}
});
return objectData;
};
问题是我的序列化没有考虑循环数据结构。例如我有我的表格
<form:input path="discipline.cnfpDisciplineCode" class="required" />
这被序列化为
{
...
discipline.cnfpDisciplineCode : someValue
...
}
是否有一种优雅的解决方案来序列化表单以使其看起来像
{
...
discipline :
{
cnfpDisciplineCode : someValue
}
...
}
还是我必须自己实现整个解析算法?
谢谢你。