将网址url中的参数转化为JSON格式

网上方法很多,各种奇技淫巧,这里贴上一种较为正常的思路。
主要利用split对获取的字符串不断进行分割,最后获得所需要的格式。
代码如下

<!DOCTYPE html>
<html lang="en">
<head>
	<meta charset="UTF-8">
	<title>将url转化为json数据</title>
</head>
<script>
	function queryString(url){
		let arr=[]; //存储参数的数组
		let res={}; //存储最终JSON结果对象
		arr=url.split("?")[1].split("&"); //arr=["a=1", "b=2", "c=test", "d"]

		for(let i=0,len=arr.length;i<len;i++){
			//如果有等号,则执行赋值操作
			if(arr[i].indexOf("=")!=-1){
				let str=arr[i].split("=");
				//str=[a,1];
				res[str[0]]=str[1];
			}else{//没有等号,则赋予空值
				res[arr[i]]="";
			}
		}
		res=JSON.stringify(res);//转化为JSON字符串
		return res; //{"a": "1", "b": "2", "c": "test", "d": ""}
	}
	console.log(queryString('www.baidu.com?a=1&b=2&c=test&d'));
</script>
<body>	
</body>
</html>
posted @ 2018-07-01 17:43  Alphabet。  阅读(2360)  评论(0编辑  收藏  举报