Query-string encoding of a Javascript Object

前端 未结 30 3456
渐次进展
渐次进展 2020-11-22 00:23

Do you know a fast and simple way to encode a Javascript Object into a string that I can pass via a GET Request?

No jQuery, no

30条回答
  •  轮回少年
    2020-11-22 00:55

    Addition for accepted solution, this works with objects & array of objects:

    parseJsonAsQueryString = function (obj, prefix, objName) {
        var str = [];
        for (var p in obj) {
            if (obj.hasOwnProperty(p)) {
                var v = obj[p];
                if (typeof v == "object") {
                    var k = (objName ? objName + '.' : '') + (prefix ? prefix + "[" + p + "]" : p);
                    str.push(parseJsonAsQueryString(v, k));
                } else {
                    var k = (objName ? objName + '.' : '') + (prefix ? prefix + '.' + p : p);
                    str.push(encodeURIComponent(k) + "=" + encodeURIComponent(v));
                    //str.push(k + "=" + v);
                }
            }
        }
        return str.join("&");
    }
    

    Also have added objName if you're using object parameters like in asp.net mvc action methods.

提交回复
热议问题