我试图让一个JSON对象从字符串URL没有成功字符串URL以JSON对象
我有这样的:
var URL = "http://localhost/index.php?module=search¶m1=4";
,我需要这样的:
var dir = index.php;
var result = {
module:'search',
param1:4
};
任何人都可以帮助我的代码?
我试图让一个JSON对象从字符串URL没有成功字符串URL以JSON对象
我有这样的:
var URL = "http://localhost/index.php?module=search¶m1=4";
,我需要这样的:
var dir = index.php;
var result = {
module:'search',
param1:4
};
任何人都可以帮助我的代码?
这里发布链接并不完全正确,但在这种情况下,OP需要的仅仅是一些库来解析URL。
这里,它是:http://james.padolsey.com/javascript/parsing-urls-with-the-dom/
太棒了!谢谢(Y) –
这种简单的JavaScript做它
url = "http://localhost/index.php?module=search¶m1=4";
var parameters = url.split("?");
var string_to_be_parsed = parameters[1];
var param_pair_string = string_to_be_parsed.split("&");
alert(param_pair_string.length);
var i = 0;
var json_string = "{"
for(;i<param_pair_string.length;i++){
var pair = param_pair_string[i].split("=");
if(i < param_pair_string.length - 1)
json_string += pair[0] + ":'" + pair[1] + "',";
else
json_string += pair[0] + ":'" + pair[1] + "'";
}
json_string += "}";
alert(json_string);
虽然不处理数组.. – Pithikos
该功能可以从字符串URL解析变量和阵列:
function url2json(url) {
var obj={};
function arr_vals(arr){
if (arr.indexOf(',') > 1){
var vals = arr.slice(1, -1).split(',');
var arr = [];
for (var i = 0; i < vals.length; i++)
arr[i]=vals[i];
return arr;
}
else
return arr.slice(1, -1);
}
function eval_var(avar){
if (avar[1].indexOf('[') == 0)
obj[avar[0]] = arr_vals(avar[1]);
else
obj[avar[0]] = avar[1];
}
if (url.indexOf('?') > -1){
var params = url.split('?')[1];
if(params.indexOf('&') > 2){
var vars = params.split('&');
for (var i in vars)
eval_var(vars[i].split('='));
}
else
eval_var(params.split('='));
}
return obj;
}
你的情况:
obj = url2json("http://localhost/index.php?module=search¶m1=4");
console.log(obj.module);
console.log(obj.param1);
给出:
"search"
"4"
如果你想"4"
转换为你做手工的整数。
http://james.padolsey.com/javascript/parsing-urls-with-the-dom/ – zerkms
还有一个jQuery(不是真正的)版本:https://github.com/allmarkedup/jQuery-URL-解析器 – Blender
@zerkms工程很好,正是我所需要的,发布答案如果你想让我接受它。谢谢!! –