方法说明:
将对象转换成字符串,字符串里多个参数将用 ‘&\' 分隔,将用 ‘=\' 赋值。
这个函数的操作和 querystring.parse() 是相反的,具体可以看一下例子就了解了。
语法:
querystring.stringify(obj, [sep], [eq])
接收参数:
obj 欲转换的对象
sep 设置分隔符,默认为 ‘&\'
eq 设置赋值符,默认为 ‘=\'
例子:
querystring.stringify({ foo: \'bar\', baz: [\'qux\', \'quux\'], corge: \'\' })
// returns
\'foo=bar&baz=qux&baz=quux&corge=\'
querystring.stringify({foo: \'bar\', baz: \'qux\'}, \';\', \':\')
// returns
\'foo:bar;baz:qux\'
源码:
QueryString.stringify = QueryString.encode = function(obj, sep, eq, name) {
sep = sep || \'&\';
eq = eq || \'=\';
if (util.isNull(obj)) {
obj = undefined;
}
if (util.isObject(obj)) {
return Object.keys(obj).map(function(k) {
var ks = QueryString.escape(stringifyPrimitive(k)) + eq;
if (util.isArray(obj[k])) {
return obj[k].map(function(v) {
return ks + QueryString.escape(stringifyPrimitive(v));
}).join(sep);
} else {
return ks + QueryString.escape(stringifyPrimitive(obj[k]));
}
}).join(sep);
}
if (!name) return \'\';
return QueryString.escape(stringifyPrimitive(name)) + eq +
QueryString.escape(stringifyPrimitive(obj));
};