Convert JavaScript Object Into URI-encoded String


Answer :

Please look closely at both answers I provide here to determine which fits you best.






Answer 1:



Likely what you need: Readies a JSON to be used in a URL as a single argument, for later decoding.



jsfiddle



encodeURIComponent(JSON.stringify({"test1":"val1","test2":"val2"}))+"<div>");


Result:



%7B%22test%22%3A%22val1%22%2C%22test2%22%3A%22val2%22%7D


For those who just want a function to do it:



function jsonToURI(json){ return encodeURIComponent(JSON.stringify(json)); }

function uriToJSON(urijson){ return JSON.parse(decodeURIComponent(urijson)); }





Answer 2:



Uses a JSON as a source of key value pairs for x-www-form-urlencoded output.



jsfiddle



// This should probably only be used if all JSON elements are strings
function xwwwfurlenc(srcjson){
if(typeof srcjson !== "object")
if(typeof console !== "undefined"){
console.log("\"srcjson\" is not a JSON object");
return null;
}
u = encodeURIComponent;
var urljson = "";
var keys = Object.keys(srcjson);
for(var i=0; i <keys.length; i++){
urljson += u(keys[i]) + "=" + u(srcjson[keys[i]]);
if(i < (keys.length-1))urljson+="&";
}
return urljson;
}

// Will only decode as strings
// Without embedding extra information, there is no clean way to
// know what type of variable it was.
function dexwwwfurlenc(urljson){
var dstjson = {};
var ret;
var reg = /(?:^|&)(\w+)=(\w+)/g;
while((ret = reg.exec(urljson)) !== null){
dstjson[ret[1]] = ret[2];
}
return dstjson;
}


I'm surprised that no one has mentioned URLSearchParams



var prms = new URLSearchParams({
firstName: "Jonas",
lastName: "Gauffin"
});
console.log(prms.toString());
// firstName=Jonas&lastName=Gauffin


See jQuery.param(...). Converts to uri, see link for more information!



Comments

Popular posts from this blog

Converting A String To Int In Groovy

"Cannot Create Cache Directory /home//.composer/cache/repo/https---packagist.org/, Or Directory Is Not Writable. Proceeding Without Cache"

Android How Can I Convert A String To A Editable