Movatterモバイル変換


[0]ホーム

URL:


codecamp

JSON 解析URL参数

使用JS函数将URL参数解析为JSON对象

问题:请编写一个JavaScript函数parseQueryString,它的用途是把URL参数解析为一个对象。
例如:var obj=parseQueryString(url);

创建对象

创建对象的三种形式:

一:

var Person=new Object();Person.name="Sun";Person.age=24;


二:

var Person=new Object();Person["name"]="Sun";Person["age"]=24;


三:

对象字面量表达式

var Person={name: "Sun",age: 24}


PS:
1、在这个例子中,比较适合使用第二种形式,向obj中添加元素
2、split("&") , 如果url只有一个参数的时候,没有“&”的时候,也不会报错,只会返回array[0]

function parseQueryString(url) {    var obj = {};    var keyvalue = [];    var key = "",        value = "";    var paraString = url.substring(url.indexOf("?") + 1, url.length).split("&");    for (var i in paraString) {        keyvalue = paraString[i].split("=");        key = keyvalue[0];        value = keyvalue[1];        obj[key] = value;    }    return obj;}

以下介绍了JS根据key值获取URL中的参数值及把URL的参数转换成json对象,js通过两种方式获取url传递参数,代码

示例一:

//把url的参数部分转化成json对象 

 parseQueryString: function(url) {     var reg_url = /^[^/?]+/ ? ([\w\W] + ) $ / ,         reg_para = /([^&=]+)=([\w\W]*?)(&|$|#)/g,         arr_url = reg_url.exec(url),         ret = {};     if (arr_url && arr_url[1]) {         var str_para = arr_url[1],             result;         while ((result = reg_para.exec(str_para)) != null) {             ret[result[1]] = result[2];         }     }     return ret; }

// 通过key获取url中的参数值

 getQueryString: function(name) {    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");    var r = window.location.search.substr(1).match(reg);    if (r != null) return unescape(r[2]);    return null;}

示例二:

js通过两种方法获取url传递参数:

js获取url传递参数方法一:

 这里是一个获取URL带QUESTRING参数的JAVASCRIPT客户端解决方案,相当于asp的request.querystring,PHP的$_GET
函数:

function GetRequest() {    var url = location.search; //获取url中"?"符后的字串     var theRequest = new Object();    if (url.indexOf("?") != -1) {        var str = url.substr(1);        strs = str.split("&");        for (var i = 0; i < strs.length; i++) {            theRequest[strs[i].split("=")[0]] = (strs[i].split("=")[1]);        }    }    return theRequest;}

然后我们通过调用此函数获取对应参数值:

var Request = new Object();Request = GetRequest();var 参数1,参数2,参数3,参数N;参数1 = Request[''参数1''];参数2 = Request[''参数2''];参数3 = Request[''参数3''];参数N = Request[''参数N''];

以此获取url串中所带的同名参数

js获取url传递参数方法二 正则分析法:

function GetQueryString(name) {    var reg = new RegExp("(^|&)" + name + "=([^&]*)(&|$)", "i");    var r = window.location.search.substr(1).match(reg);    if (r != null) return (r[2]);    return null;}alert(GetQueryString("参数名1"));alert(GetQueryString("参数名2"));alert(GetQueryString("参数名3"));

其他参数获取介绍:

//设置或获取对象指定的文件名或路径。

alert(window.location.pathname);

//设置或获取整个 URL 为字符串。

alert(window.location.href);

//设置或获取与 URL 关联的端口号码。

alert(window.location.port);

//设置或获取 URL 的协议部分。

alert(window.location.protocol);

//设置或获取 href 属性中在井号“#”后面的分段。

alert(window.location.hash);

//设置或获取 location 或 URL 的 hostname 和 port 号码。

alert(window.location.host);

//设置或获取 href 属性中跟在问号后面的部分。

alert(window.location.search);
JSON 数据解析过程详解
JSON 元素的添加删除
温馨提示
下载编程狮App,免费阅读超1000+编程语言教程
取消
确定
目录
关于 JSON

JSON 教程

JSON 基础

json格式

JSON 示例

JSON解析

JSON遍历

JSON调用

JSON转换

JSON获取

JSON字符串

JSON数组

关闭

MIP.setData({'pageTheme' : getCookie('pageTheme') || {'day':true, 'night':false},'pageFontSize' : getCookie('pageFontSize') || 20});MIP.watch('pageTheme', function(newValue){setCookie('pageTheme', JSON.stringify(newValue))});MIP.watch('pageFontSize', function(newValue){setCookie('pageFontSize', newValue)});function setCookie(name, value){var days = 1;var exp = new Date();exp.setTime(exp.getTime() + days*24*60*60*1000);document.cookie = name + '=' + value + ';expires=' + exp.toUTCString();}function getCookie(name){var reg = new RegExp('(^| )' + name + '=([^;]*)(;|$)');return document.cookie.match(reg) ? JSON.parse(document.cookie.match(reg)[2]) : null;}
[8]ページ先頭

©2009-2025 Movatter.jp