在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 。
它在npm
和bower
都可用,这就是为什么我一直在使用它。
或者YUI有http://yuilibrary.com/yui/docs/api/classes/QueryString.html#method_stringify 。
例如:
var data = { one: 'first', two: 'second' }; var result = Y.QueryString.stringify(data);