Url的参数转变成json
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Url的参数转变成json相关的知识,希望对你有一定的参考价值。
参考技术A 首先,你要知道在地址中只会有一个问号‘?’,而‘&’,‘=’肯定是链接参数的,如果参数为‘?’’&’, ‘/’会被替换成‘%2f’之类的。URL中一些字符的特殊含义,基本编码规则:
l 空格换成加号(+)
l 正斜杠(/)分隔目录和子目录
l 问号(?)分隔URL和查询
l 百分号(%)制定特殊字符
l #号指定书签
l &号分隔参数
l + URL 中+号表示空格 %2B
l 空格 URL中的空格可以用+号或者编码 %20
l / 分隔目录和子目录 %2F
l ? 分隔实际的 URL 和参数 %3F
l % 指定特殊字符 %25
l # 表示书签 %23
l & URL 中指定的参数间的分隔符 %26
l = URL 中指定参数的值 %3D
html URL 编码详见
例子:
<script>
var errorLocation = 'http://localhost/webapp/wcs/stores/servlet/GoalSearchView?guarantee_yearsLeft=6&guarantee=is+still+active&topLevelCategoryId=14051&langId=44&monthNyear=07%2F04%2F2015&bought_month=&cost=23&manufacturer=a+%26+r+alpha&bought_year=&catalogId=10001&ErrorCode=05138&errorMsgInternal=No+Rates+found%0A"eType=new&categoryId=14052&condition=good+working+order&storeId=10151&email=&ddkey=http:DGGetQuote';
var paraString = errorLocation.substring(errorLocation.indexOf('?') + 1,errorLocation.length);
var paraJsonString;
paraJsonString = paraString.replace(/\=/g,"\"\:\"");
paraJsonString = paraJsonString.replace(/\&/g,"\",\"");
paraJsonString = paraJsonString.replace(/\+/g," ");
paraJsonString = paraJsonString.replace(/\%26/g,"&");
paraJsonString = paraJsonString.replace(/\%2F/g,"\/");
paraJsonString = paraJsonString.replace(/\%0A/g,"\:");
paraJsonString = '"' + paraJsonString + '"';
paraJson = JSON.parse(paraJsonString);
console.log(paraJson);
</script>
提取url中参数的方法(转换成json格式)
还是直接上代码吧。
//将url中的参数获取到并抓换成json格式 function serilizeUrl(url){ var urlObject={}; //1.正则匹配是不是以?结尾 if(/\?/.test(url)){ //substring 截取指定位置的之间的字符串, //第一个值是起始下标,第二个可不不写, //不写就一直截取到最后 //2.截取?后面的东西 var urlString = url.substring(url.indexOf(‘?‘)+1) //3.将&去除 加入数组 var urlArray = urlString.split("&"); //4.遍历数组 for(var i=0;i<urlArray.length;i++){ var urlItem = urlArray[i]; //再次切割 var item=urlItem[i].split(‘=‘); //赋值 urlObject[item[0]]=item[1]; } return urlObject; } //如果没有匹配上就返回空对象 return null; }
我的代码注释都比较详细,主要是为了给初学者一个参考。
以上是关于Url的参数转变成json的主要内容,如果未能解决你的问题,请参考以下文章
请给正规式a(ab)*abb转变成DFA。(提示:先转变成NFA,再用子集法确定化并化简)?