Created
July 10, 2014 17:47
-
-
Save lastguest/1fd181a9c9db0550a847 to your computer and use it in GitHub Desktop.
Convert JavaScript object to x-www-form-urlencoded format
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
function JSON_to_URLEncoded(element,key,list){ | |
var list = list || []; | |
if(typeof(element)=='object'){ | |
for (var idx in element) | |
JSON_to_URLEncoded(element[idx],key?key+'['+idx+']':idx,list); | |
} else { | |
list.push(key+'='+encodeURIComponent(element)); | |
} | |
return list.join('&'); | |
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
var data = { | |
'users' : [ | |
{ | |
"id": 100, | |
"name": "Stefano" | |
}, | |
{ | |
"id": 200, | |
"name": "Lucia" | |
}, | |
{ | |
"id": 300, | |
"name": "Franco" | |
}, | |
], | |
'time' : +new Date | |
}; | |
console.log( | |
JSON_to_URLEncoded(data) | |
); | |
/* | |
Output: | |
users[0][id]=100&users[0][name]=Stefano&users[1][id]=200&users[1][name]=Lucia&users[2][id]=300&users[2][name]=Franco&time=1405014230183 | |
*/ |
@sevillaarvin It's a modified version of https://gist.github.com/lastguest/1fd181a9c9db0550a847#gistcomment-2643755
The original has a custom object nesting algorithm. There's no official standard for converting Object to string values. URLSearchParams are always string values. Convert your nested objects to string beforehand or line (eg: with JSON.stringify(value)
)
import qs from 'querystring';
qs.stringify({ 'key': 'value' })
this worked really well for me.
import qs from 'querystring'; qs.stringify({ 'key': 'value' })this worked really well for me.
The gist was from 7 years ago... hopefully things have improved since then 😅
import qs from 'querystring'; qs.stringify({ 'key': 'value' })this worked really well for me.
The gist was from 7 years ago... hopefully things have improved since then sweat_smile
not as much as you'd think :-)
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Does not produce the same output when: