node.js学习第六天--Query String

1、字符串转换 Query String模块的基本介绍

Query String模块用于实现URL参数字符串与参数对象之间的互相转换,提供了“stringify”、“parse”等一些实用函数来针对字符串进行处理,通过序列化和反序列化,来更好的应对实际开发中的条件需求,对于逻辑的处理也提供了很好的帮助,下面就让我们一起来了解学习它吧!

2、序列化

stringify函数的基本用法

stringify函数的作用就是序列化对象,也就是说将对象类型转换成一个字符串类型(默认的分割符(“&”)和分配符(“=”)),本节先介绍它的基本用法,在下一节里我们将学习如何替换默认分配符,下面我们就通过以下例子来清楚的认识一下吧!

例1:querystring.stringify(“对象”)

var querystring= require(‘querystring‘);

var result = querystring.stringify({foo:‘bar‘,cool:[‘xux‘, ‘yys‘]});

console.log(result);

运行结果:

foo=bar&cool=xux&cool=yys

看了上面的介绍和示例,相信你对stringify函数也有了初步的了解,赶快趁热打铁,动手练一练!

“get=fire&get=ice&want=go”,用stringify序列化怎么实现呢?

将对象转换成查询字符串,一般使用默认的&符号和=等号来构造字符串。

3、序列化《多参数》

stringify函数的多参数用法

这节我们来学习stringify函数的多参数用法,上节我们知道了对象被序列化为字符串之后默认是通过分割符(“&”)和分配符(“=”)组成的,那可不可以改变呢,这节我们就来了解一下,是否可以自己去定义组合结果,看下面的小例子

例1:querystring.stringify(“对象”,“分隔符”,“分配符”)

var querystring = require(‘querystring‘);

var result = querystring.stringify({foo:‘bar‘,cool:[‘xux‘, ‘yys‘]},‘*‘,‘$‘);

console.log(result);

运行结果:

‘foo$bar*cool$xux*cool$yys‘

看了上面的示例,相信你已经很清楚了,分隔符、分配符是可以根据不同情况而选择给定的,那下面就亲自试试吧!

“spr#sum@spr #aut@aut#win” 练一练!

与2不同的是,我们可以任意改变所构造字符串使用的连接符号。

4、反序列化

parse函数的基本用法

刚刚我们已经学习了stringify函数的作用,接下来就来学习反序列化函数——parse函数,parse函数的作用就是反序列化字符串(默认是由“=”“&”拼接而成),转换得到一个对象类型.如下示例:

例1:querystring.parse(“字符串”)

var querystring = require(‘querystring‘);

var result = querystring.parse(‘foo=bar&cool=xux&cool=yys‘);

console.log(result);

运行结果:

{ foo: ‘bar‘, cool: [‘xux‘, ‘yys‘]}

学习了“stringify函数”,那这次的“parse函数”也是小菜一碟啦!动手试试吧!

stringify、parse函数实现了字符串与对象的互相转换。

 

5、parse函数的多参数用法

 

现在我们学习parse函数的扩展用法,和上节stringify函数的多参数用法不同的是,parse函数可以根据用户所自定义的分割符、分配符来反序列化字符串,从而得到相应的对象结果.如下示例:

 

例1:querystring.parse(“字符串”,“分隔符”,“分配符”)

 

var querystring = require(‘querystring‘);

var result = querystring.parse(‘foo@bar$cool@xux$cool@yys‘,‘@‘,‘$‘);

console.log(result);

 

运行结果:

 

{ foo: ‘‘, bar: ‘cool‘, xux: ‘cool‘, yys: ‘‘ }

 

看了上面的示例,相信你已经有点跃跃欲试了,赶快传个字符串parse下吧!

parse函数的多参数用法,可用于转换自义定字符串,通过反序列化获取对象值。

6、课程小结

很高兴您学完了本节课程,关于querystring的一些常用方法就先讲到这里了,如果您还想了解更多的话,可以参考以下地址:

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。