let str = "AAA=001&BBB=002&CCC=003&DDD=004&EEE=005&FFF=006&GGG=007&HHH=008&III=009&JJJ=010&KKK=011&LLL=012&MMM=013&NNN=014&OOO=015&PPP=016&QQQ=017&QQQ=018"
and I need str to return like this:
{ "AAA":"001", "BBB":"002", "CCC":"003", "DDD":"004", "EEE":"005", "FFF":"006", "GGG":"007", "HHH":"008", "III":"009", "JJJ":"010", "KKK":"011", "LLL":"012", "MMM":"013", "NNN":"014", "OOO":"015", "PPP":"016", "QQQ":"017", "QQQ":"018" }
here are the answers I reached and both works...
The first solution:
var str = "AAA=001&BBB=002&CCC=003&DDD=004&EEE=005&FFF=006&GGG=007&HHH=008&III=009&JJJ=010&KKK=011&LLL=012&MMM=013&NNN=014&OOO=015&PPP=016&QQQ=017&RRR=018";
const URLSearchParams2JSON_1 = (STRING) => {
var searchParams = new URLSearchParams(str);
return Object.fromEntries([...searchParams]);
}
console.log(URLSearchParams2JSON_1(str));
The second solution:
var str = "AAA=001&BBB=002&CCC=003&DDD=004&EEE=005&FFF=006&GGG=007&HHH=008&III=009&JJJ=010&KKK=011&LLL=012&MMM=013&NNN=014&OOO=015&PPP=016&QQQ=017&RRR=018";
const URLSearchParams2JSON_2 = (STRING) => {
var searchParams = new URLSearchParams(STRING);
var object = {};
searchParams.forEach((value, key) => {
var keys = key.split('.'),
last = keys.pop();
keys.reduce((r, a) => r[a] = r[a] || {}, object)[last] = value;
});
return object;
}
console.log(URLSearchParams2JSON_2(str));