JavaScript实现url参数转成json形式


Posted in Javascript onSeptember 25, 2016

朋友问的一个面试题:有个url,要求获取url 的参数,返回值为json格式。

简单的写了下,发笔记备份。

<!DOCTYPE html>
<html>
<head>
 <meta charset="utf-8">
 <title>simple a example for url to json</title>
 <script>
 var url = 'https://www.baidu.com/s?ie=utf-8&f=8&rsv_bp=0&rsv_idx=1&tn=baidu&wd=慕课&rsv_pq=e379bd8200001a8c&rsv_t=ea8cxrgm03IFb44zHA261P6KziPRXAekcjwsRJtUSKLUmKweFsZFXE%2BUSrU&rqlang=cn&rsv_enter=0&rs';

 function url2json(url){
  var index = -1,
     str = '',
     arr = [],
     length = 0,
     res = {};
  if(url.indexOf('?')!=-1){
  index = url.indexOf('?');
  str = url.substring(index+1);
  arr = str.split('&');
  length = arr.length;
  for(var i=0; i<length-1; i++){
   res[arr[i].split('=')[0]] = arr[i].split('=')[1];
  }
  }else{
  res = {};
  }
  return res;
 };

 var result = url2json(url);

 //获取json的键值对条数(模拟长度)
 var length = 0;
 for(var i in result){
  length++;
 }


 //在页面输出
 var tL = 0;
 document.write('{<br>');
 for(var name in result){
  tL++;
  
  if(tL == length){
  document.write('  '+name+':'+result[name]+'<br>');
  }else{
  document.write('  '+name+':'+result[name]+',<br>'); 
  }
 }
 document.write('}');
 </script>
</head>
<body>
Javascript 相关文章推荐
alert中断settimeout计时功能
Jul 26 Javascript
js切换光标示例代码
Oct 10 Javascript
jQuery实现鼠标经过提示信息的地图热点效果
Apr 26 Javascript
javascript实现图片上传前台页面
Aug 18 Javascript
JS+CSS实现大气的黑色首页导航菜单效果代码
Sep 10 Javascript
JavaScript匿名函数之模仿块级作用域
Dec 12 Javascript
理解javascript函数式编程中的闭包(closure)
Mar 08 Javascript
深入浅析JSON.parse()、JSON.stringify()和eval()的作用详解
Apr 03 Javascript
javascript容错处理代码(屏蔽js错误)
Jan 20 Javascript
JavaScript循环_动力节点Java学院整理
Jun 28 Javascript
小程序scroll-view安卓机隐藏横向滚动条的实现详解
May 16 Javascript
Vue 3.x+axios跨域方案的踩坑指南
Jul 04 Javascript
动态JavaScript所造成一些你不知道的危害
Sep 25 #Javascript
jQuery中的AjaxSubmit使用讲解
Sep 25 #Javascript
需要牢记的JavaScript基础知识
Sep 25 #Javascript
分享一个原生的JavaScript拖动方法
Sep 25 #Javascript
HTML中setCapture、releaseCapture 使用方法浅析
Sep 25 #Javascript
jQuery的deferred对象使用详解
Sep 25 #Javascript
简单谈谈Vue 模板各类数据绑定
Sep 25 #Javascript
You might like
用Socket发送电子邮件
2006/10/09 PHP
ADODB的数据库封包程序库
2006/12/31 PHP
PHP中static关键字原理的学习研究分析
2011/07/18 PHP
PHP中unset,array_splice删除数组中元素的区别
2014/07/28 PHP
php 问卷调查结果统计
2015/10/08 PHP
实例分析基于PHP微信网页获取用户信息
2017/11/24 PHP
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
jQuery中使用data()方法读取HTML5自定义属性data-*实例
2014/04/11 Javascript
jQuery中parentsUntil()方法用法实例
2015/01/07 Javascript
Express实现前端后端通信上传图片之存储数据库(mysql)傻瓜式教程(二)
2015/12/10 Javascript
jQuery表单验证插件解析(推荐)
2016/07/21 Javascript
javascript之with的使用(阿里云、淘宝使用代码分析)
2016/10/11 Javascript
微信小程序实现弹出菜单
2018/07/19 Javascript
浅谈Vue初学之props的驼峰命名
2018/07/19 Javascript
微信小程序项目实践之九宫格实现及item跳转功能
2018/07/19 Javascript
利用chrome浏览器进行js调试并找出元素绑定的点击事件详解
2021/01/30 Javascript
在Create React App中使用CSS Modules的方法示例
2019/01/15 Javascript
React+Antd+Redux实现待办事件的方法
2019/03/14 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
浅谈layui框架自带分页和表格重载的接口解析问题
2019/09/11 Javascript
微信小程序单选框自定义赋值
2020/05/26 Javascript
[51:36]EG vs VP 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
Python实现判断并移除列表指定位置元素的方法
2018/04/13 Python
Python创建一个空的dataframe,并循环赋值的方法
2018/11/08 Python
关于 Python opencv 使用中的 ValueError: too many values to unpack
2019/06/28 Python
Python操作Excel工作簿的示例代码(\*.xlsx)
2020/03/23 Python
Python爬虫模拟登陆哔哩哔哩(bilibili)并突破点选验证码功能
2020/12/21 Python
canvas实现高阶贝塞尔曲线(N阶贝塞尔曲线生成器)
2018/01/10 HTML / CSS
迪卡侬比利时官网:Decathlon比利时
2019/12/28 全球购物
医学院学生求职简历的自我评价
2013/10/24 职场文书
巾帼建功标兵事迹材料
2014/05/11 职场文书
学生检讨书如何写
2014/10/30 职场文书
办公室主任岗位竞聘书
2015/09/15 职场文书
《山中访友》教学反思
2016/02/24 职场文书