js对象转成用&拼接的请求参数(转)

var parseParam=function(param, key){
var paramStr="";
if(param instanceof String||param instanceof Number||param instanceof Boolean){
paramStr+="&"+key+"="+encodeURIComponent(param);
}else{
$.each(param,function(i){
var k=key==null?i:key+(param instanceof Array?"["+i+"]":"."+i);
paramStr+='&'+parseParam(this, k);
});
}
return paramStr.substr(1);
};





var obj={name:'tom','class':{className:'class1'},classMates:[{name:'lily'}]};
parseParam(obj);
结果:"name=tom&class.className=class1&classMates[0].name=lily"
parseParam(obj,'stu');
结果:"stu.name=tom&stu.class.className=class1&stu.classMates[0].name=lily"