首页 > 其他分享 >js 将对象转成url参数,url参数转成对象

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

时间:2023-06-16 11:56:35浏览次数:30  
标签:return name url param js 参数 key var

/**
 * 获取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;
}

  

/**
 * 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;

};

  

标签:return,name,url,param,js,参数,key,var
From: https://www.cnblogs.com/louby/p/17485206.html

相关文章

  • Python初学者友好丨详解参数传递类型
    摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》......
  • Python初学者友好丨详解参数传递类型
    摘要: 本文清晰地解释了Python中的不同参数传递类型,并提供了示例代码来说明每种类型的用法。对于初学者或不清楚Python传参的读者们来说是非常有益的,文中提供了足够的信息来理解和使用Python中的函数参数传递。本文分享自华为云社区《提升Python函数调用灵活性:参数传递类型详解》,作......
  • 防止Javascript重新排序JSON
    javascript中的对象为什么会按照键来自动排序?原因:javascript中的对象按照键来自动排序是浏览器造成的,经查V8的相关文档得出以下结论:Chrome浏览器下创建的js对象数组会自动按照键排序、FireFox99.0版本(最新版本)会,FireFox 4.0.1不会。 解决方法:必须将对象的键值转换为字符,......
  • SEO自动提交URL到站长平台
    近期需要对多个网站进行优化,然而每次手动将URL提交至百度显得非常麻烦。虽然使用了百度自动提交代码,但仍有不便之处。为此,我写了以下脚本,既可单独使用,也可同时使用。尽管可定期访问URL文件,但日志中却常常会出现404错误、权限不足等问题,这使人疑惑是否提交成功。以下代码可直接执行......
  • js~在浏览器中对用户名和密码进行存储
    base64函数btoa()和atob()是JavaScript中的标准函数,通常在现代浏览器中都能正常工作。然而,它们在处理非ASCII字符时可能存在一些兼容性问题。这些函数的主要限制在于它们仅支持ASCII字符集,对于非ASCII字符(如Unicode字符)可能会产生不可预测的结果。在处理非ASCII......
  • json 处理
    需要引入"encoding/json"包json解析到mapjsonStr:="{\"a\":\"test\",\"b\":\"testb\"}"vardatmap[string]stringerr:=json.Unmarshal([]byte(jsonStr),&dat)iferr==nil{fmt.Println(da......
  • Java的JSON处理
    Java的JSON处理用于JSON处理的JavaAPI(JSON-P)提供可移植的API,以使用对象模型和流式API来解析,生成,转换和查询JSON。JSON-P中使用JSON的两种方式有两种:流式API和对象模型API。JSON-P流式API流式API将解析和生成控制移交给程序员。流式API提供了基于事......
  • 如何降低Vue.js项目中Webpack打包文件的大小?
    结论结论:vue中,直接引用文件,可以让打包文件最小。试验记录下面测试项目中引入一个Button组件的代价。基准工程大小:[raywill:shop]npmrunbuild>shop@build/Users/raywill/code/vue/shop>cross-envNODE_ENV=productionwebpack--progress--hide-modulesHash:d902d9dc5e......
  • 网络传输中的重要参数-简单的网络画像
    目录缓存网络画像客观网络条件主观外部输入小结在前两篇博文对带宽、时延与丢包率有了初步的认识后(引流引流哈哈哈),我们已经可以对网络链路进行简单的画像描述了,不同画像的网络在现实中复杂的场景下也会有着不同的表现。在分析这些表现之前,首先对一个参数进行补充。缓存还是在前......
  • CMake命令行添加编译参数
    CMake命令行添加编译参数学习自coroserver例程:https://github.com/windoze/coroservercoroserver是一个应用Boost.Asio和Boost.Coroutine的多线程TCP服务器。README中有编译命令行示例:`CXXFLAGS="-std=c++11-stdlib=libc++"LDFLAGS="-stdlib=libc++"cmake[options]pa......