Convert QueryString to Object

by andfinally

JavaScript

function qToArr(q)
{
    q = decodeURIComponent((q).replace(/\+/g, '%20'));
    arr = {};
    var a = q.split(/&(?!amp;)/g);
    for (x in a)
    {
        var pair = a[x].split('=');
        arr[pair[0]] = pair[1];
    }
    return arr;
}

var q = "zot&idExpiry=2018-07-03&idCheckSignature=OK&idDob=1978-07-03&idType=DRIVING_LICENSE&idCheckMicroprint=OK&idCheckHologram=OK&idCheckDataPositions=OK&idCheckDocumentValidation=OK&idFirstName=JEREMY+NEWWAYNEW&idScanSource=SDK&idFaceMatch=95&jumioIdScanReference=debd39c8-bd67-4ae1-9e1b-946559b10a95&customerId=684d7ffa-5c52-11e3-8619-392b9e204df3&idUsState=CA&idScanImage=https%3A%2F%2Fnetverify.com%2Frecognition%2Fv1%2Fidscan%2Fdebd39c8-bd67-4ae1-9e1b-946559b10a95%2Ffront&idNumber=A9762781&idScanStatus=SUCCESS&idCountry=USA&verificationStatus=APPROVED_VERIFIED&merchantIdScanReference=46c6859c-872e-44d5-ada7-094b88075f2e&idCheckSecurityFeatures=OK&idCheckMRZcode=N%2FA&clientIp=68.108.248.161&callBackType=NETVERIFYID&idLastName=ANTICOUNI&idAddress=%7B%22city%22%3A%22SANTA+BARBARA%22%2C%22country%22%3A%22USA%22%2C%22state%22%3A%22CA%22%2C%22streetName%22%3A%22ROLLING+BROOK%22%2C%22streetNumber%22%3A%22610%22%2C%22streetSuffix%22%3A%22LANE%22%2C%22zip%22%3A%2293110%22%7D&spon";

$('body').append("<pre>"+JSON.stringify(qToArr(q), undefined, 4) +"</pre>");