Javascript使用jQuery将查询字符串转换为JSON并返回查询字符串 [英] Javascript convert query string to JSON using jQuery and back to query string

查看:122
本文介绍了Javascript使用jQuery将查询字符串转换为JSON并返回查询字符串的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

希望您能找到以下有助于将查询字符串转换为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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆