Url的参数转变成json

作者: 乘着风 | 来源:发表于2015-05-28 16:41 被阅读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>

    相关文章

      网友评论

        本文标题:Url的参数转变成json

        本文链接:https://www.haomeiwen.com/subject/qhirqttx.html