我试图从一个字符串 URL 中创建一个 JSON 对象但没有成功
我有这个:
var URL = "http://localhost/index.php?module=search¶m1=4";
我需要这个:
var dir = index.php;
var result = {
module:'search',
param1:4
};
谁能帮我写代码?
我试图从一个字符串 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/
此函数可以从字符串 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"
为整数,则必须手动进行。
这个简单的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);