¿Existe una biblioteca de javascript que analice este type=1&merchant[type]=1&member[0][type]=1 en un objeto. El resultado se vería así:
{type:1, merchant: {type: 1}, member: [{type: 1}]}Puede dividir la cadena en partes de claves y valores y crear un nuevo objeto observando la siguiente propiedad de crear una matriz o un objeto para el nivel real de una estructura anidada.
Al final asigne el valor a la última propiedad.
const setValue = (object, path, value) => { const keys = path.replace(/[\[]/gm, '.').replace(/[\]]/gm, '').split('.'), last = keys.pop(); keys .reduce((o, k, i, kk) => o[k] ??= isFinite(i + 1 in kk ? kk[i + 1] : last) ? [] : {}, object) [last] = isFinite(value) ? +value : value; return object; }, string = 'type=1&merchant[type]=1&member[0][type]=1', result = string .split('&') .reduce((r, pair) => setValue(r, ...pair.split('=')), {}); console.log(result); .as-console-wrapper { max-height: 100% !important; top: 0; }