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&Q"
y necesito que str regrese así:
{ "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" }
aquí están las respuestas que llegué y ambas obras...
La primera solución:
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));La segunda solución:
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));