:写在前面
需求:在项目中需要前端传递key:value的json数据给后台,以下是遍历form表单,存储为array对象,再拆分为json,动态生成json对象,间接动态生成map。
一:遍历form表单、或者input值,将name作为key,value作为value值。
var listMake=[],listName=[],data={};
$("#Array input").each(function (i, ele) {
if ($(ele).val() != "") {
if((typeof $(ele).val())!="number"){
isNumber=false;
}
listMake.push($(ele).attr("name")+'='+$(ele).val());
}else {
$(ele).focus();
ifc=false;
}
});
二:切割处理函数,将数组中的每一个字符转为json,数组转为json.
function arrToObject(arr){
var strJs = '({';
for(var i=0;i<arr.length;i+=1){
var as = arr[i].split("=");
strJs = strJs + as[0] + ':' +'"' + as[1] + '"' +',';
}
strJs = strJs.substr(0,strJs.length-1) + '})';
return eval(strJs);
}
三:传递data,调用函数,arrToObject(listMake)
data=$.extend(data,{"listMake":arrToObject(listMake),"listName":arrToObject(listName)});