Javascript使用jQuery将查询字符串转换为JSON并返回查询字符串 [英] Javascript convert query string to JSON using jQuery and back to query string
问题描述
希望您能找到以下有助于将查询字符串转换为json对象的函数
Hope you will find following function useful for converting query string into json object
var queryStringToJSON = function (url) {
if (url === '')
return '';
var pairs = (url || location.search).slice(1).split('&');
var result = {};
for (var idx in pairs) {
var pair = pairs[idx].split('=');
if (!!pair[0])
result[pair[0].toLowerCase()] = decodeURIComponent(pair[1] || '');
}
return result;
}
用法:
获取当前的Windows查询字符串
To get current windows query string
var result = queryStringToJSON() // without any parameter
从自定义查询字符串中获取json:
To get json from custom query string:
var result = queryStringToJSON('?name=prem&age=30&HEIGHT=5.8')
输出: {name:prem,年龄:30,身高:5.8} //所有密钥都转换为小写字母
要将其转换回网址,您可以使用 jQuery param 方法
To convert it back to url you can use jQuery param method
$.param(result)
要操作查询字符串,您可以在JavaScript中简单地使用标准对象操作并再次使用$ .param方法
To manipulate your query string you can simple use standard object manipulation in JavaScript and use $.param method again
result.age=35;
delete result['name'];
推荐答案
或者......代替:
Alternatively... Instead of:
for (var idx in pairs) {
var pair = pairs[idx].split('=');
if (!!pair[0])
result[pair[0].toLowerCase()] = decodeURIComponent(pair[1] || '');
}
尝试:
result = pairs.reduce(function(a,b) {
var pair = b.split("=");
a[pair[0].toLowerCase()] = decodeURIComponent(pair[1] || '');
return a;
},{});
工作方式相同但使用 reduce()
这是一个原生的javascript函数,可能更快。
Works the same but uses reduce()
which being a native javascript function, is probably faster.
这篇关于Javascript使用jQuery将查询字符串转换为JSON并返回查询字符串的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!