技术文程序员Web前端之路

Url的参数转变成json

2015-05-28  本文已影响2350人  乘着风

首先,你要知道在地址中只会有一个问号‘?’,而‘&’,‘=’肯定是链接参数的,如果参数为‘?’’&’, ‘/’会被替换成‘%2f’之类的。

URL中一些字符的特殊含义,基本编码规则:

l  空格换成加号(+)

l  正斜杠(/)分隔目录和子目录

l  问号(?)分隔URL和查询

l  百分号(%)制定特殊字符

l  #号指定书签

l  &号分隔参数

URL特殊符号及对应的十六进制值编码:

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&quoteType=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>

上一篇 下一篇

猜你喜欢

热点阅读