form表单转json字符串

来源:互联网 发布:bamboo mac 手绘 编辑:程序博客网 时间:2024/06/04 19:27

在实际的开发过程中,很多时候都需要使用ajax,在使用ajax的过程中常常需要把页面的表单数据作为参数传输到后台程序中。当然使用ajax的时候表单数据是不能直接提交到后台的,的先转换成json字符串,把json字符串通过参数的方式传到后台程序。

<form action="" id="personInfo" method="post"><input type="text" name="userName" value="张三"/><br/><input type="text" name="sex" value="男"/><br/><input type="text" name="age" value="20" /><br/><input type="submit" value="提交" /></form>

例如想把上面的表单数据通过ajax传输到后台待处理。


var formObject = {};

var formArray =$("#personInfo").serializeArray();

$.each(formArray,function(i,item){

formObject[item.name] = item.value;

});


var formJson = JSON.stringify(formObject);

上面最后得到的formJson就是一个json字符串,可以在ajax的操作中直接作为参数传递到后台待处理。

下面对与上面的代码进行简单的解释:

在jquery里面提供了一个叫serializeArray()的方法,从名字上来猜测是序列化成数组,实际上也是如此。我们来看看文档是怎么说的


从上面可以看出,它是把表单里面的每个输入框都转换成一个json对象,然后把这些json对象放到一个数组里面。我们需要的是json字符串。

①把得到的数组对象转换成json对象

②把json对象转换成json字符串

json对象和json字符串还是有区别的

json对象例子:var person = {name : "张三","sex" : "男",age : 20};

json字符串就是一个纯粹的字符串,例子:var person = '{"name" : "张三","sex" : "男","age" : "20"}';

var formObject = {}创建的是一个空的json对象,然后遍历formArray(也就是使用serializeArray()得到的数据),把formArray里面的每个json对象的name的值作为json对象的键、把formArray里面的每个json对象的value的值作为json对象的值存到formObject里面。

var formJson = JSON.stringify(formObject)就是把json对象(formObject)转换成json字符串(formJson)

原创粉丝点击