我想以一种可以通过AJAX发送数据的方式将表单序列化为JSON对象。我正在使用以下功能:用于JSON的Javascript表单序列化
$.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
}
...
}
还是我必须自己实现整个解析算法?
谢谢。
没有内置任何东西;你必须自己做这个。 – Matt 2012-07-18 13:07:07
– Andrei 2012-07-18 13:20:47