Serializza l’object per interrogare la stringa in JavaScript / jQuery

Sto cercando di trovare informazioni su come serializzare un object per interrogare il formato della stringa, ma tutte le mie ricerche sono annegate nei risultati su come andare nella direzione opposta (stringa / modulo / qualsiasi cosa a JSON).

io ho

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

e io voglio

 ?one=first&two=second 

C’è un buon modo per farlo? Non mi interessa plug-in o whatnot – se il codice che trovo non è un plugin, probabilmente lo riscriverò comunque …

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

Nello specifico, vuoi questo:

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

Quando viene dato qualcosa di simile:

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

$.param restituirà questo:

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

Per una rapida funzione non JQuery …

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

Nota che questo non gestisce matrici o oggetti nidificati.

Un’altra opzione potrebbe essere node-querystring .

È disponibile sia in npm che in bower , motivo per cui l’ho utilizzato.

In alternativa, YUI ha http://yuilibrary.com/yui/docs/api/classs/QueryString.html#method_stringify .

Per esempio:

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