クエリ文字列形式にオブジェクトをシリアル化する方法に関する情報を見つけようとしていますが、すべての検索結果が他の方法(文字列/フォーム/なんでもJSON)で結果にinれています。
私は持っています
{ one: 'first', two: 'second' }
そして私は欲しい
?one=first&two=second
これを行う良い方法はありますか?私はプラグインやその他のことを気にしません-私が見つけたコードがプラグインでない場合は、とにかくそれを書き直します...
必要な$.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);