序列化主要就是为了传输方便,将要传输的对象序列化为二进制的数据流,效率极高,接受时通过反序列化转化为对象,从而达到一个传输的效果。
代码实现:
1.序列化:$("#graduatedModeForm_XXOO" ).serialize();
使用说明:先再ftl中定义一个Form表单,然后再取一个id名,那么使用序列化的好处就在于:再form表单中的所有数据都可以快速的转换为二进制数据流,如“01011100111”(java中),在js中序列化数据将转换为String类型,如“aaa=11&bbb=22,当我们进入当前页面的时候,可以通过前台debugger进入检查模式,然后点开console,在里面输入$("#idxxx").serialize();即可看到里面包含的数据
2.反序列化:
$("#graduatedModeForm_" + flag).serialize();
var params = {};
if(typeof formParam == "string"){
formParam.split('&').forEach(function (item){
item = item.split('=');
if(params[item[0]]){
if(!params[item[0]].push){
params[item[0]] = [params[item[0]]];
}
params[item[0]].push(item[1] || '');
} else{
params[item[0]] = item[1] || '';
}
});
}
使用说明:序列化serialize()的数据格式中间以&隔开,如aaa=11&BBB=22&CCC=33,反序列化是将数据进行拆分,然后将对象存到对应的集合中,
拆分分两步,先以“&”进行拆分,再以“=”进行拆分
jsonObject是json对象,map和json都是一对一的键值对,不同的是map中键值对中间使用“=”分开,如{age=20},json中键值对中间是使用“:”分开,如{"age":20},其实json就是一种特殊形式的map。
jsonArray 是json数组,使用[]表示,里面的值是json键值对格式,json对象中添加的是键值对,而jsonArray中添加的是json对象。
代码实现:
//创建一个json对象
JSONObject json=new JSONObject();
//创建一个json数组
JSONArray jsonArray=new JSONArray();
//先将键值对添加到json对象中
json.put("key",value);
//然后再将json对象添加到json数组中
JSONArray.add(json);