将表单序列化为JSON和从JSON序列化

时间:2010-08-25 17:11:51

标签: javascript jquery json serialization

我想将表单序列化为json,处理json对象,然后将其重新序列化以通过ajax发送到php脚本。

这是我想要做的一个粗略的例子:

s = $('.dia_req_form').serialize();
j = //convert s to json ...HOW??
if(j.name)
{
    alert("you must enter a name");
}
if(selectedID)
{
    j.id = selectedID;
}
s = //serialize j ...HOW??

你可以看到两个部分说如何?

2 个答案:

答案 0 :(得分:2)

您可以像这样使用.serializeArray()$.param()

//validate here
var obj = $('.dia_req_form').serializeArray();
if(selectedID) {
  obj.push({ name: 'id', value: selectedID });
}
var s = $.param(obj); //s can be used for submission

在内部,.serialize()实际上等同于$.param($(this).serializeArray()),因此所有这一切都是将步骤分开,在需要时添加项目。

.serializeArray()是一个包含2个属性(namevalue)的对象数组,我们所做的只是在需要时向数组添加一些对象,然后< / em>调用$.param()使其成为字符串。

答案 1 :(得分:0)

您可以使用此lib,$.serializeObject是现有$.serialize方法的变体,它不是将表单元素编码为字符串,而是将表单元素转换为可在JavaScript中使用的有效JSON对象应用。

https://github.com/hongymagic/jQuery.serializeObject