解析url的查询部分,生成对应的JSON对象
来源:互联网 发布:免费翻墙 for mac 编辑:程序博客网 时间:2024/04/29 17:43
我们知道在于服务器交互过程中,get和post是最重要的两种方式,在get方式下,我们通常会见到一大串网址信息,而这些信息是什么呢,有时候我们需要拿到它并进行分析
好了,我百度主页输入CSDN,搜索结果呈现给我们后,网址栏出现如下一串东西
https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=csdn&rsv_pq=fdfd3c990005f0f7&rsv_t=cc0d6AGGoE2h1vZAcxlSMkTQA%2FVYgp0AwoTeWrt3kQ6Y9PzLYMnnMII%2BUPY&rqlang=cn&rsv_enter=1&rsv_sug3=4&rsv_sug1=3&rsv_sug7=100
除了前面的百度主页,后面这些是什么呢,我打开浏览器控制台,通姑window.location查询
细心的同志可能会发现,后面这一大串就是location对象的search属性
我们输入window.location.search
浏览器还是丢给我们这串不知所云的东西,细看一下又好像很多键值对和连接符号组成,我们能不能把它解析成更直观的JSON对象来看呢,很显然是可以的
看下面代码
var url=window.location.search;var rep=/[?&][^?&]+=[^?&]+/g;//全局匹配所有"?"和“&”后面的键值对var arr=url.match(rep);//执行匹配操作,返回键值对数组console.log(arr);再执行一下
好了,丢给我们这串数组,这次清楚一些了,不过还有“?”和“&”连接符存在,没有形成我们想要的JSON对象
接下来完善一下代码
var url=window.location.search; var rep=/[?&][^?&]+=[^?&]+/g;//全局匹配所有"?"和“&”后面的键值对 var arr=url.match(rep);//执行匹配操作,返回键值对数组 //console.log(arr); var obj={}; if(arr){ arr.forEach(function(item){ var tempArr = item.substring(1).split('='); var key = tempArr[0]; var val = tempArr[1]; obj[key] = val; }) } console.log(obj);这次我百度我女神高圆圆,丢进程序看什么结果
好,基本得到我们想要的结果,里面有字符编码,上一次的访问记录等等东西,这样就完成了吗,怎么没见与女神任何相关的东西,别急,接下来见证奇迹
js为我们提供了一个专门编译URI的decodeURIComponent函数(全局函数),decodeURIComponent() 函数可对 encodeURIComponent() 函数编码的 URI 进行解码。
我猜测这里面有被编码过的信息,接下来解码试试
我代码是这样写的
var url=window.location.search;var rep=/[?&][^?&]+=[^?&]+/g;//全局匹配所有"?"和“&”后面的键值对var arr=url.match(rep);//执行匹配操作,返回键值对数组//console.log(arr);var obj={};if(arr){arr.forEach(function(item){var tempArr = item.substring(1).split('='); var key = decodeURIComponent(tempArr[0]); var val = decodeURIComponent(tempArr[1]); obj[key] = val;})}console.log(obj);运行
哈哈,果不其然,女神找到,这世界好神奇~
- 解析url的查询部分,生成对应的JSON对象
- Android中Gson解析和生成JSON字符串讲解,GsonFormat一键生成对应的数据对象
- Unity 中生成JSON以及对应的解析方法
- json和对象转换以及相同不同对象的json解析为对应对象
- 将url的查询参数解析成字典对象
- 将url的查询参数解析成字典对象
- 将url的查询参数解析成字典对象
- apache HttpClients实例,传入json对象。对应的springMvc通过HandlerMethodArgumentResolver解析两个对象绑定
- 简单原生json串的解析与生成(对象 数组)
- javascript 根据给定的id集合查询对应的值,返回 json对象
- json对象的解析,jquery 解析json
- json数据转化为对应的对象
- 后台传输JSON或List<对象>,前台对应的解析方法
- Json的解析和生成
- Json的解析和生成
- Json 数据的解析 ,生成
- JSON的解析与生成
- json的生成与解析
- Android中跑马灯 maxLines与singleLine
- Neutron 是如何实现负载均衡器虚拟化的 [LBaaS V1 in Juno]
- 小菜工作后
- 面向对象的三大特性,请用代码说明三大特性
- 斯坦福大学机器学习——EM算法求解高斯混合模型
- 解析url的查询部分,生成对应的JSON对象
- wxPython之SystemSettings
- 关于Matlab绘图(2)
- 【直流传动与控制系统】第11周CDIO工作报告
- BZOJ1968: [Ahoi2005]COMMON 约数研究
- Linux网络配置
- toolbar的简单使用
- File "build/bdist.linux-armv7l/egg/MySQLdb/__init__.py", line 81, in Connect
- thrift的编译过程