JSFiddle - React, Tailwind, and code Playground

HTML

<script
  src="https://code.jquery.com/jquery-3.1.1.min.js"
  integrity="sha256-hVVnYaiADRTO2PzUGmuLJr8BLUSjGIZsDYGmIJLv2b8="
  crossorigin="anonymous"></script>
<div id="tgt"></div>

JavaScript

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;
}

var iii = {"t1":"teeone","t2":"teetwo","t3":"teethree","t4":"teefour"};
$("<div>").text("ENCODED:").appendTo("#tgt");
$("<div>").text(xwwwfurlenc(iii)).appendTo("#tgt");
$("<div>").text("DECODED:").appendTo("#tgt");
$("<div>").text(JSON.stringify(dexwwwfurlenc(xwwwfurlenc(iii)))).appendTo("#tgt");