【发布时间】:2012-07-18 13:05:12
【问题描述】:
我正在尝试将表单序列化为 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
}
...
}
还是我必须自己实现整个解析算法?
谢谢。
【问题讨论】:
-
没有内置任何东西;你必须自己做。
-
<form:input path="discipline.cnfpDisciplineCode" class="required" />如何呈现为 HTML? -
-
@Chandu,我是Spring framwork taglib。这将生成一个
<input name='discipline.cnfpDisciplineCode' class='required' />html 标记。
标签: javascript jquery ajax json serialization