安装:

npm install qs --save-dev

基本用法:

 let qs = require('qs');
let assert = require('assert'); //qs.parse('a=c')将字符串等式转换为对象
let obj = qs.parse('a=c');
console.log(obj)//{a:'c'} //qs.stringify(obj)将对象转化为字符串等式
let str = qs.stringify(obj);
console.log(str)//a=c

解析对象:

qs.parse(string, [options]);

qs可以通过使用[]在查询字符串中创建嵌套的对象

如:

qs.parse('foo[bar]=baz'

等于:

  foo: {
bar: 'baz'
}

解析URL编码:

qs.parse('a%5Bb%5D=c')

等于:

  a: { b: 'c' }

对象嵌套:

 qs.parse('foo[bar][baz]=foobarbaz'

结果:

 foo: {
bar: {
baz: 'foobarbaz'
}
}

默认情况下,qs可以解析1000个参数,可以通过parameterLimit选项进行设置:

 var limited = qs.parse('a=b&c=d', { parameterLimit: 1 });
// { a: 'b' }

ignoreQueryPrefix:选项,忽略查询字符:

 var prefixed = qs.parse('?a=b&c=d', { ignoreQueryPrefix: true });

结果:

 { a: 'b', c: 'd' }
delimiter分隔符选项:去掉分号:
qs.parse('a=b;c=d', { delimiter: ';' })
//{ a: 'b', c: 'd' }

分隔符可以是正则表达式:

qs.parse('a=b;c=d,e=f', { delimiter: /[;,]/ });

//{ a: 'b', c: 'd', e: 'f' }

allowDots 选项:将点.变成对象;

 qs.parse('a.b=c', { allowDots: true });
//{ a: { b: 'c' } }
charset :如果您必须处理旧版浏览器或服务,还支持将百分比编码的八位字节解码为iso-8859-1
 qs.parse('a=%A7', { charset: 'iso-8859-1' }
//{ a: '§' }
解析数组:
qs.parse('a[]=b&a[]=c');
//{ a: ['b', 'c'] }

在解析数组的时候,可以指定index:

 qs.parse('a[1]=c&a[0]=b')
//{ a: ['b', 'c'] }

如果是空值,也将保留:

 qs.parse('a[]=&a[]=b')
//{ a: ['', 'b'] }
 a[0]=b&a[1]=&a[2]=c
// { a: ['b', '', 'c'] }

如果索引超过20,索引将会被看作是key:

 qs.parse('a[100]=b')
//{ a: { '100': 'b' } }

转化为字符串:

qs.stringify(object, [options]);
qs.stringify({ a: 'b' })
//'a=b' qs.stringify({ a: { b: 'c' } })
//a%5Bb%5D=c
 qs.stringify({ a: { b: 'c' } }, { encode: false })
//a[b]=c
qs.stringify({ a: ['b', 'c', 'd'] })
// 'a[0]=b&a[1]=c&a[2]=d'
qs.stringify({ a: ['b', 'c', 'd'] }, { indices: false });
// 'a=b&a=c&a=d'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'indices' })
// 'a[0]=b&a[1]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'brackets' })
// 'a[]=b&a[]=c'
qs.stringify({ a: ['b', 'c'] }, { arrayFormat: 'repeat' })
// 'a=b&a=c'
qs.stringify({ a: { b: { c: 'd', e: 'f' } } });
// 'a[b][c]=d&a[b][e]=f'
qs.stringify({ a: { b: { c: 'd', e: 'f' } } }, { allowDots: true });
// 'a.b.c=d&a.b.e=f'
qs.stringify({ a: '' })
//a=
qs.stringify({ a: 'b', c: 'd' }, { addQueryPrefix: true })
//'?a=b&c=d'
 qs.stringify({ a: 'b', c: 'd' }, { delimiter: ';' })
'a=b;c=d'
 

qs文档翻译的更多相关文章

  1. 我是如何进行Spring MVC文档翻译项目的环境搭建、项目管理及自动化构建工作的

    感兴趣的同学可以关注这个翻译项目 . 我的博客原文 和 我的Github 前段时间翻译的Spring MVC官方文档完成了第一稿,相关的文章和仓库可以点击以下链接.这篇文章,主要是总结一下这个翻译项目 ...

  2. Hibernate 3.3.2 文档翻译 Day01

    Hibernate 3.3.2 文档翻译 翻译人:微冷的雨 第一次书写:2015年11月29日 本人呕心沥血之作,请细心阅读领悟! Day01-1.1 项目描述 微冷的雨翻译:例如,我们将要建立一个可 ...

  3. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)中一些知识点

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Flume官方文档翻译--Flume 1.7.0 User Guide (unr ...

  4. Flume官方文档翻译——Flume 1.7.0 User Guide (unreleased version)(二)

    Flume官方文档翻译--Flume 1.7.0 User Guide (unreleased version)(一) Logging raw data(记录原始数据) Logging the raw ...

  5. SQLAlchemy 中文文档翻译计划

    SQLAlchemy 中文文档翻译计划已启动. Python 文档协作翻译小组人手紧缺,有兴趣的朋友可以加入我们,完全公益性质.交流群:467338606. 希望大家能够勇敢地去翻译和改进翻译.虽然我 ...

  6. ZOJ1586 QS Network

    QS Network Time Limit: 2 Seconds      Memory Limit: 65536 KB Sunny Cup 2003 - Preliminary Round Apri ...

  7. Laravel 5.3 中文文档翻译完成

    经过一个多月的紧张翻译和校对,翻译完成.以下是参与人员: Laravel 5.3 中文文档翻译完成 稿源:七星互联www . qixoo.com 文档地址在此:https://laravel-chin ...

  8. 蓝牙4.0——Android BLE开发官方文档翻译

    ble4.0开发整理资料_百度文库 http://wenku.baidu.com/link?url=ZYix8_obOT37JUQyFv-t9Y0Sv7SPCIfmc5QwjW-aifxA8WJ4iW ...

  9. 2014年QS世界大学排名

    新浪教育[微博]讯 近日2014QS世界大学排行榜发布,榜单前十强均为英美名校.其中麻省理工大学以绝对优势位居榜首:英国剑桥大学及帝国理工学院并列排名第二:哈佛大学较去年而言名次略微下降,跌至第四. ...

随机推荐

  1. iteye-Spring的缺点有哪些

    http://www.iteye.com/topic/1126929 1. flounders --  发表时间:2012-09-25    如题,希望大侠们指出,不能用Spring就觉得他什么都好, ...

  2. MAVEN 搭建APPFUSE

    2010-05-21  利用Maven构建appfuse. 步骤如下: 1)Maven下载,下载apache-maven-2.2.1-bin.zip 下载地址:http://apache.freela ...

  3. thunderbird中如何设置QQ邮箱

    thunderbird和其他客户端设置是类似的. 我们发现您尝试设置POP3/SMTP服务,但设置未成功. 您可以检查以下的细节来解决:  您是否在邮箱中开启了这项服务,如果尚未开启,请您在[邮箱设置 ...

  4. HTTP 接口响应数据解析

    转自:https://blog.csdn.net/hubanbei2010/article/details/79878567 作为产品线的支撑角色QA/CI/CD等,http api解析是互联网公司中 ...

  5. Ubuntu下看不见pthread_create(安装pthread线程库)

    使用下面的命令就可以了! sudo apt-get install glibc-doc sudo apt-get install manpages-posix-dev 然后在用man -k pthre ...

  6. apk 静默安装

    老大要我弄个自动更新,要用到静默安装,网上找到了些大拿的代码,我拿去改吧改吧,先贴出来: /** * 软件静默安装 * @param apkAbsolutePath apk文件所在路径 * @retu ...

  7. JAVA RSA私钥 加密(签名) 对应 C# RSA私钥 加密(签名)

    非对称密钥RSA算法加解密在C#和Java之间交互的问题,这两天看了很多其他人写的文章,碰到了几个问题,最终解决问题. 参考地址:http://xw-z1985.iteye.com/blog/1837 ...

  8. excel文档中数据导入sql server注意事项

    进来经常需要对一些基础数据进行更新,而业务方提供的数据源往往都是excel,所以经常需要将excel中数据导入到 数据库临时表,然后再进行处理. 在导入过程中,发现有些数据比如手机号码,如果默认导入, ...

  9. idea13注册机

    public class Keygen { /** * @param s * @param i * @param bytes * @return */ public static short getC ...

  10. SQL 正则表达式 `(user_log_acct)?+.+`

    SELECT 语句可以使用正则表达式做列选择,下面的语句查询除了 ds 和 hr 之外的所有列: SELECT `(ds|hr)?+.+` FROM test