diff options
author | Thomas Lee <tom@tom-debian.sensis.com.au> | 2010-04-28 16:31:28 +1000 |
---|---|---|
committer | Ryan Dahl <ry@tinyclouds.org> | 2010-04-28 16:18:48 -0700 |
commit | a63ce5cd729c1aef63774f21b983330b089963ba (patch) | |
tree | 5f3ffab48c103e1ce7f84d3b145f295a0413a68d /lib/querystring.js | |
parent | 039d13b0c352766225c27cb6df0d7df05aac5c36 (diff) | |
download | android-node-v8-a63ce5cd729c1aef63774f21b983330b089963ba.tar.gz android-node-v8-a63ce5cd729c1aef63774f21b983330b089963ba.tar.bz2 android-node-v8-a63ce5cd729c1aef63774f21b983330b089963ba.zip |
Allow callers to disable PHP/Rails style parameter mungeing in querystring.stringify
Diffstat (limited to 'lib/querystring.js')
-rw-r--r-- | lib/querystring.js | 10 |
1 files changed, 6 insertions, 4 deletions
diff --git a/lib/querystring.js b/lib/querystring.js index 83e0a0f85e..df19123351 100644 --- a/lib/querystring.js +++ b/lib/querystring.js @@ -21,10 +21,12 @@ var stack = []; * @param obj {Variant} any arbitrary value to convert to query string * @param sep {String} (optional) Character that should join param k=v pairs together. Default: "&" * @param eq {String} (optional) Character that should join keys to their values. Default: "=" + * @param munge {Boolean} (optional) Indicate whether array/object params should be munged, PHP/Rails-style. Default: true * @param name {String} (optional) Name of the current key, for handling children recursively. * @static */ -QueryString.stringify = function (obj, sep, eq, name) { +QueryString.stringify = function (obj, sep, eq, munge, name) { + munge = typeof(munge) == "undefined" ? true : munge; sep = sep || "&"; eq = eq || "="; if (isA(obj, null) || isA(obj, undefined) || typeof(obj) === 'function') { @@ -37,9 +39,9 @@ QueryString.stringify = function (obj, sep, eq, name) { } if (isA(obj, [])) { var s = []; - name = name+'[]'; + name = name+(munge ? '[]' : ''); for (var i = 0, l = obj.length; i < l; i ++) { - s.push( QueryString.stringify(obj[i], sep, eq, name) ); + s.push( QueryString.stringify(obj[i], sep, eq, munge, name) ); } return s.join(sep); } @@ -59,7 +61,7 @@ QueryString.stringify = function (obj, sep, eq, name) { for (var i = 0, l = keys.length; i < l; i++) { var key = keys[i]; var n = begin + key + end; - s.push(QueryString.stringify(obj[key], sep, eq, n)); + s.push(QueryString.stringify(obj[key], sep, eq, munge, n)); } stack.pop(); |