How to serialize an Object into a list of URL query parameters?
Without knowing the keys of a JavaScript Object
, how can I turn something like...
var obj = {
param1: 'something',
param2: 'somethingelse',
param3: 'another'
}
obj[param4] = 'yetanother';
...into...
var str = 'param1=something¶m2=somethingelse¶m3=another¶m4=yetanother';
...?
One line with no dependencies:
new URLSearchParams(obj).toString();
// OUT: param1=something¶m2=somethingelse¶m3=another¶m4=yetanother
Use it with the URL builtin like so:
let obj = { param1: 'something', param2: 'somethingelse', param3: 'another' }
obj['param4'] = 'yetanother';
const url = new URL(`your_url.com`);
url.search = new URLSearchParams(obj);
const response = await fetch(url);
[Edit April 4, 2020]: null
values will be interpreted as the string 'null'
.
If you use jQuery, this is what it uses for parameterizing the options of a GET XHR request:
$.param( obj )
http://api.jquery.com/jQuery.param/