JSFiddle - React, Tailwind, and code Playground
by Nayana Das
JavaScript
function convertQueryToMap(query) {
var objs = query.split('&');
var obj = {};
objs.forEach(function(o) {
o = o.split('=');
obj[o[0]] = decodeURIComponent(o[1] || '');
});
for (var str in obj) {
if (str.indexOf(".") !== -1)
{
//parseDotNotation(key, obj[key], obj);
var currentObj = obj,
keys = str.split("."),
i, l = Math.max(1, keys.length - 1),
key;
for (i = 0; i < l; ++i) {
key = keys[i];
currentObj[key] = currentObj[key] || {};
currentObj = currentObj[key];
}
currentObj[keys[i]] = obj[str];
delete obj[str];
}
}
return JSON.parse(JSON.stringify(obj));
}
console.log(JSON.stringify(convertQueryToMap("user.name.firstname=Bob&user.name.lastname=Smith&user.favoritecolor=Light%20Blue")));