nodejs 的序列化与反序列化

1.序列化

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

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

例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'

2.反序列化

 接下来就来学习反序列化函数——parse函数,parse函数的作用就是反序列化字符串(默认是由"="、"&"拼接而成),转换得到一个对象类型。如下示例:

例1:querystring.parse("字符串")

var querystring = require('querystring');
var result = querystring.parse('foo=bar&cool=xux&cool=yys');
console.log(result);

运行结果:

  1. { foo: 'bar', cool: ['xux', 'yys']}

现在我们学习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: '' }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏鬼谷君

python3 内置函数详解

813

Python3 字符串操作

字符串是Python中最基本的数据类型之一,用于表示文本数据。几乎每个应用程序都涉及使用字符串,Python的str类提供了许多方法来简化字符串操作。

794
来自专栏用户3030674的专栏

GreenDao教程2

可以多次使用where(),进行多次筛选,也可以使用whereOr()语句,进行或语句查找

792
来自专栏风中追风

分布式进阶__如何用zookeeper 实现分布式锁

        分布式锁主要用于在分布式环境中保护跨进程、跨主机、跨网络的共享资源实现互斥访问,以达到保证数据的一致性。

36616
来自专栏Python小屋

Python使用修饰器强制函数只接收关键参数

前面发过一篇文章介绍了单独一个星号或斜线作为函数参数的含义,请查看:Python函数中单独一个星号或斜线作为形参的含义 如果需要强制函数的所有参数都必须以关键参...

2687
来自专栏码洞

Channel最佳实践之基本规则【译】

channel[通道]是golang的一种重要特性,正是因为channel的存在才使得golang不同于其它语言。channel使得并发编程变得简单容易有趣。

571
来自专栏十月梦想

PHP数据类型转换

        Java,c,c++等强类型语言必须先声明数据类型,java和c声明一个整数型(int a=100;)

581
来自专栏数据结构与算法

01:数制转换

01:数制转换 总时间限制: 1000ms 内存限制: 65536kB描述 求任意两个不同进制非负整数的转换(2进制~16进制),所给整数在long所能表达...

3767
来自专栏测试开发架构之路

总结了一些指针易出错的常见问题(六)

  安全问题与指针误用 声明和初始化指针(初始化失败) 误用指针 释放问题 指针声明: // 宏定义(仅仅是替换) #define PINT int*; PIN...

33713
来自专栏决胜机器学习

《Redis设计与实现》读书笔记(八) ——Redis列表对象和哈希对象实现原理

《Redis设计与实现》读书笔记(八) ——Redis列表对象和哈希对象实现原理 (原创内容,转载请注明来源,谢谢) 一、列表对象 列表对象的编码可以是zipl...

3567

扫码关注云+社区