在JavaScript / jQuery中序列化对象来查询string

我试图find如何序列化一个对象查询string格式的信息,但我所有的search结果淹没在如何去其他方式(string/forms/无论到JSON)。

我有

{ one: 'first', two: 'second' } 

而且我要

 ?one=first&two=second 

有没有一个好的方法来做到这一点? 我不介意插件或whatnots – 如果我find的代码不是一个插件,我可能会重新写入一个无论如何…

你想$.param() : http : //api.jquery.com/jQuery.param/

具体来说,你需要这个:

 var data = { one: 'first', two: 'second' }; var result = $.param(data); 

当给出这样的事情:

 {a: 1, b : 23, c : "te!@#st"} 

$.param将返回这个:

 a=1&b=23&c=te!%40%23st 

对于一个快速的非JQuery函数…

 function jsonToQueryString(json) { return '?' + Object.keys(json).map(function(key) { return encodeURIComponent(key) + '=' + encodeURIComponent(json[key]); }).join('&'); } 

注意这不处理数组或嵌套的对象。

另一个选项可能是node-querystring 。

它在npmbower都可用,这就是为什么我一直在使用它。

或者YUI有http://yuilibrary.com/yui/docs/api/classes/QueryString.html#method_stringify

例如:

 var data = { one: 'first', two: 'second' }; var result = Y.QueryString.stringify(data);