将网址url中的参数转化为JSON格式的两种方法
程序员文章站
2022-04-09 15:50:27
在我们进入主题前,我先先看下获取网址URL的方法: window.location.href // 设置或获取整个URL为字符串 window.location.hash // 设置或获取href属性中在井号#后面的部分参数 window.location.search // 设置或获取href属性 ......
在我们进入主题前,我先先看下获取网址url的方法:
window.location.href // 设置或获取整个url为字符串
window.location.hash // 设置或获取href属性中在井号#后面的部分参数
window.location.search // 设置或获取href属性中跟在问号?后面,井号#前面的部分参数
例如我们这里有一个url,例如:http://127.0.0.1:8080/html/urltojson.html?id=1&name=good#&price=1003
下面看下上面三个方法是如何使用的
console.log(window.location.href);
// http://127.0.0.1:8080/html/urltojson.html?id=1&name=good#&price=1003
console.log(window.location.hash);
// #&price=1003
console.log(window.location.search);
// ?id=1&name=good
我们看到了上面三个方法的返回参数是不一样的,我们接下来看下如果将url转换为json格式的数据。
第一种: for 循环方式
// 第一种: for循环
var getqueryjson1 = function () {
let url = location.href; // 获取当前浏览器的url
let arr = []; // 存储参数的数组
let res = {}; // 存储最终json结果对象
arr = url.split('?')[1].split('&'); // 获取浏览器地址栏中的参数
for (let i = 0; i < arr.length; i++) { // 遍历参数
if (arr[i].indexof('=') != -1){ // 如果参数中有值
let str = arr[i].split('=');
res[str[0]] = str[1];
} else { // 如果参数中无值
res[arr[i]] = '';
}
}
return res;
}
console.log(getqueryjson1());
第二种:正则表达式方式
// 第二种:正则表达式
var getqueryjson2 = function () {
let url = location.href; // 获取当前浏览器的url
let param = {}; // 存储最终json结果对象
url.replace(/([^?&]+)=([^?&]+)/g, function(s, v, k) {
param[v] = decodeuricomponent(k);//解析字符为中文
return k + '=' + v;
});
return param;
}
console.log(getqueryjson2());
以上所述是小端给大家介绍的js将网址url转化为json格式的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言
上一篇: 怎么让ArrayList变成线程安全的?