js 将对象转成url参数,url参数转成对象

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
/**
 * 获取url的参数,并转成对象
 */
function getUrlParamJson() {
    var url = window.location.href;
    if (url.indexOf("?") == -1) {
        return {};
    }
    var obj = {};
    url = url.substring(url.indexOf("?") + 1);
    var arr = url.split('&');
    var len = arr.length;
    for (var a = 0; a < len; a++) {
        var nv = arr[a].split('=');
        obj[nv[0]] = unescape(nv[1]);
    }
    return obj;
}

  

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
/**
 * param 将要转为URL参数字符串的对象
 * key URL参数字符串的前缀
 * encode true/false 是否进行URL编码,默认为true
 * return URL参数字符串
 *
 var obj={name:'tom','class':{className:'class1'},classMates:[{name:'lily'}]};
 output: &name=tom&class.className=class1&classMates[0].name=lily
 output: &stu.name=tom&stu.class.className=class1&stu.classMates[0].name=lily
 */
function objectToParam(param, key, encode) {
    if (param == null) return '';
    var paramStr = '';
    var t = typeof (param);
    if (t == 'string' || t == 'number' || t == 'boolean') {
        paramStr += '&' + key + '=' + ((encode == null || encode) ? escape(param) : param);
    } else {
        for (var i in param) {
            var k = key == null ? i : key + (param instanceof Array ? '[' + i + ']' : '.' + i);
            paramStr += objectToParam(param[i], k, encode);
        }
    }
    return paramStr;
 
};

  

posted @   骚年丶勿忘初心。  阅读(1818)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· Manus的开源复刻OpenManus初探
· AI 智能体引爆开源社区「GitHub 热点速览」
· C#/.NET/.NET Core技术前沿周刊 | 第 29 期(2025年3.1-3.9)
· 从HTTP原因短语缺失研究HTTP/2和HTTP/3的设计差异
点击右上角即可分享
微信分享提示