summaryrefslogtreecommitdiff
path: root/lib/querystring.js
diff options
context:
space:
mode:
authorThomas Lee <tom@tom-debian.sensis.com.au>2010-04-28 16:31:28 +1000
committerRyan Dahl <ry@tinyclouds.org>2010-04-28 16:18:48 -0700
commita63ce5cd729c1aef63774f21b983330b089963ba (patch)
tree5f3ffab48c103e1ce7f84d3b145f295a0413a68d /lib/querystring.js
parent039d13b0c352766225c27cb6df0d7df05aac5c36 (diff)
downloadandroid-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.js10
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();