node.js的querystring.stringify的使用

来源:互联网 发布:约瑟夫环c语言循环链式 编辑:程序博客网 时间:2024/06/13 04:26

node.js的querystring.stringify的使用

  1. 该方法可以将对象转换为字符串,字符串中多个参数用‘&’分割,键与值用”=”赋值

    注意与 querystring.parse()区别,后者是将字符串转换为对象


  2. querystring.stringify(obj, [sep], [eq])

    obj:欲转换的对象

    sep:设置分隔符,默认为‘&’

    eq :设置赋值符,默认为‘=’

    querystring.stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' }) // 'foo=bar&baz=qux&baz=quux&corge=' 

  3. 下面的函数是我写的一个简单的stringify

        function stringify(obj, sep, eq) {        sep = sep || '&';        eq = eq || '=';        var tmp = [];        var res = [];        for(var item in obj) {            if(Array.isArray(obj[item])) {                obj[item].forEach(function(value) {                    tmp.push(item, value);                    res.push(tmp.join(eq));                    tmp.length = 0;                                     });                         }else {                tmp.push(item, obj[item]);                res.push(tmp.join(eq));                 tmp.length = 0;                     }        }        res.join(sep);        console.log(res.join(sep));    }    stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });    stringify({ foo: 'bar', baz: ['qux', 'quux'], corge: '' });    //结果: foo=bar&baz=qux&baz=quux&corge=

  4. 关于querystring.stringify的源码

    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));};

关于这部分源码,有兴趣的童鞋可以一起讨论哦

0 0