JSFiddle - React, Tailwind, and code Playground

by userdude

JavaScript

function objectParametize(obj, delimeter, q) {
    var str = new Array();
    if (!delimeter) delimeter = '&';
    for (var key in obj) {
        switch (typeof obj[key]) {
            case 'string':
            case 'number':
                str[str.length] = key + '=' + obj[key];
            break;
            case 'object':
                str[str.length] = objectParametize(obj[key], delimeter);
        }
    }
    return (q === true ? '?' : '') + str.join(delimeter);
}

var test1 = {
    'str' : 'string',
    'num' : 1,
    'obj' : {
        'objstr' : 'objectstring',
        'objnum' : 2,
        'obj2' : {
            'obj2str' : 'object2string',
            'obj2num' : 3
        }
    }
};
    
console.log(objectParametize(test1, ';', true));

var test2 = {
    param1: 'something',
    param2: 'somethingelse',
    param3: 'another',
    bla: {
        param5: 'i\'m nested!',
        ja: {
            param6: 'i am really nested'
        }
    }
};
    
console.log(objectParametize(test2, '&'));