js将json格式的对象拼接成复杂的url参数方法
下面小编就为大家带来一篇js将json格式的对象拼接成复杂的url参数方法。小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
//json转url参数
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'
}]
};
console.log(parseParam(obj));//name=tom&class.className=class1&classMates[0].name=lily
console.log(parseParam(obj, 'stu'));//stu.name=tom&stu.class.className=class1&stu.classMates[0].name=lily
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"
将string 转换成json对象
var define = "{name: 'Michael ',email: '17bity@gmail.com '} ";
var data = eval( '( ' + define + ') ');
alert(data.name);
//用这个用这个用这个。
//json转url参数
function parseParam(param, key) {
var paramStr = "";
if (typeof (param) == 'string' || typeof (param) == 'number' || typeof (param) == 'boolean') {
return "&" + key + "=" + encodeURIComponent(param);
} else {
var data = null;
if (key) {
//只要第一层数据
// if (typeof (param) == 'object') {
// data = param
// } else {
// data = param ? param[key] : ""
// }
data = param ? param[key] : ""
} else {
data = param
}
for (var keyTemp in data) {
var dataTemp = data[keyTemp];
paramStr += parseParam(dataTemp, keyTemp);
}
}
return paramStr.substr(1);
};