在我们进入主题前,我先先看下获取网址URL的方法:
window.location.href // 设置或获取整个URL为字符串
window.location.hash // 设置或获取href属性中在井号#后面的部分参数
window.location.search // 设置或获取href属性中跟在问号?后面,井号#前面的部分参数
例如我们这里有一个url,例如:http://127.0.0.1:8080/html/urltojson.html?id=1&name=good#&price=1003
下面看下上面三个方法是如何使用的
console.log(window.location.href);
// http://127.0.0.1:8080/html/urltojson.html?id=1&name=good#&price=1003
console.log(window.location.hash);
// #&price=1003
console.log(window.location.search);
// ?id=1&name=good
我们看到了上面三个方法的返回参数是不一样的,我们接下来看下如果将url转换为json格式的数据。
第一种: for 循环方式
// 第一种: for循环
var GetQueryJson1 = function () {
let url = location.href; // 获取当前浏览器的URL
let arr = []; // 存储参数的数组
let res = {}; // 存储最终JSON结果对象
arr = url.split('?')[1].split('&'); // 获取浏览器地址栏中的参数 for (let i = 0; i < arr.length; i++) { // 遍历参数
if (arr[i].indexOf('=') != -1){ // 如果参数中有值
let str = arr[i].split('=');
res[str[0]] = str[1];
} else { // 如果参数中无值
res[arr[i]] = '';
}
}
return res;
}
console.log(GetQueryJson1());
第二种:正则表达式方式
// 第二种:正则表达式
var GetQueryJson2 = function () {
let url = location.href; // 获取当前浏览器的URL
let param = {}; // 存储最终JSON结果对象
url.replace(/([^?&]+)=([^?&]+)/g, function(s, v, k) {
param[v] = decodeURIComponent(k);//解析字符为中文
return k + '=' + v;
});
return param;
} console.log(GetQueryJson2());
以上所述是小端给大家介绍的JS将网址url转化为JSON格式的方法,希望对大家有所帮助,如果大家有任何疑问请给我留言
将网址url中的参数转化为JSON格式的两种方法的更多相关文章
-
将网址url中的参数转化为JSON格式
网上方法很多,各种奇技淫巧,这里贴上一种较为正常的思路. 主要利用split对获取的字符串不断进行分割,最后获得所需要的格式. 代码如下 <!DOCTYPE html> <html ...
-
Android中使用Gson解析JSON数据的两种方法
Json是一种类似于XML的通用数据交换格式,具有比XML更高的传输效率;本文将介绍两种方法解析JSON数据,需要的朋友可以参考下 Json是一种类似于XML的通用数据交换格式,具有比XML更高的 ...
-
Java学习笔记——可视化Swing中JTable控件绑定SQL数据源的两种方法
在 MyEclipse 的可视化 Swing 中,有 JTable 控件. JTable 用来显示和编辑常规二维单元表. 那么,如何将 数据库SQL中的数据绑定至JTable中呢? 在这里,提供两种方 ...
-
怎么在CAD中测量图纸距离?来看看这两种方法
在CAD中设计图纸最重要的就是图纸的尺寸,俗话说也就是图纸间的距离.通过正确的数据设计出的图纸才能够准确,也能够避免施工时事不必要的误差.那怎么在CAD中测量图纸距离呢?具体要怎么来进行操作呢?下面我 ...
-
PyQt(Python+Qt)学习随笔:QTableWidget中表格各列平均分配宽度的两种方法
老猿Python博文目录 专栏:使用PyQt开发图形界面Python应用 老猿Python博客地址 在QTableWidget表格部件中,如果需要实现表格中各列要占满部件中的可用空间,同时实现各列平分 ...
-
正则表达式提取url中的参数,返回json字符串
var urlstr = "www.baidu.com?a=1&b=xx&c"; var s = urlstr.split("?"); var ...
-
利用Shell脚本将MySQL表中的数据转化为json格式
脚本如下: #!/bin/bash mysql -s -phello test >.log <<EOF desc t1; EOF lines="concat_ws(',', ...
-
HTML中调用带有SoapHeader头的WebService的两种方法
第一种: function CallWebMethodWithHeader() { var soapXML = "<soap:Envelope xmlns:xsi='http://ww ...
-
MySQL中删除数据的两种方法
转自:http://blog.csdn.net/apache6/article/details/2778878 1. 在MySQL中有两种方法可以删除数据: 一种是delete语句,另一种是trunc ...
随机推荐
-
【转】SharePoint camel query查询 event 或者Calendar 日历列表的时候,怎么查询所有的重复发生的事件
When you query a SharePoint calendar your results will contain: All non-recurring events The first e ...
-
TX Textcontrol 使用总结五——添加图片
实现如图所示效果: 实现代码如下所示: 注意,此处不做代码格式化处理... using System;using System.Collections.Generic;using System.Dra ...
-
Storm官方帮助手册翻译(上)
Storm作为当前最流行的实时计算框架,自Twitter将其开源后就一直备受关注.由于其具有先天的稳定性以及便捷性,目前被许多大公司所采用,国外像雅虎.雅虎日本.Twitter.OOYALA.Spot ...
-
c#调试快捷键
F5 - 启动调试 Shift + F5 - 停止调试 F9 - 设置断点 Ctrl + Shift + F9 - 删除所有断点 F10 - 逐过程调试 F11 - 逐语句调试 Ctrl+R+E: ...
-
JavaScript 基本包装类型,包装对象
前言 javascript对象是一种复合值,它是属性或已命名值的集合.通过'.'符号来引用属性值.当属性值是一个函数时,称其为方法.通过o.m()来调用对象o中的方法.我们发现,字符串也同样具有属性和 ...
-
mvc5怎么给所有action都设置几个公用的ViewBag
最近开发项目中遇到这样的问题,因为有多个同步的页面,所以需要在多个同步页面上有相同的值返回回来,经过一系列的思维,我们把思维整理出来. public ActionResult Index() { Vi ...
-
使用python解决算法和数据结构--使用栈实现进制转换
可以将10进制数据转换成2进制,8进制,16进制等. 晚上练练算法和数据结构哈. # coding = utf-8 class Stack: def __init__(self): self.item ...
-
PAT——1038. 统计同成绩学生
本题要求读入N名学生的成绩,将获得某一给定分数的学生人数输出. 输入格式: 输入在第1行给出不超过105的正整数N,即学生总人数.随后1行给出N名学生的百分制整数成绩,中间以空格分隔.最后1行给出要查 ...
-
Don&#39;t Be a Subsequence
问题 F: Don't Be a Subsequence 时间限制: 1 Sec 内存限制: 128 MB提交: 33 解决: 2[提交] [状态] [讨论版] [命题人:] 题目描述 A sub ...
-
《剑指offer》面试题8—旋转数组的最小数字
题目:把一个数组最开始的若干个元素搬到数组末尾我们称之为数组的旋转.要求:输入一个递增排序的数组的旋转,输出旋转数组中的最小数字.例如{3,4,5,1,2}是{1,2,3,4,5}的一个旋转,该数组的 ...