js将json格式的对象拼接成复杂的url参数方法

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);
};

 

转载于:https://my.oschina.net/huqiji/blog/1585559

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值