nodejs 的序列化与反序列化

摘要:
示例1:querystring parse varquerystring=require;varresult=querystring。作语法分析安慰日志运行结果:{foo:'bar',cool:['xux','yys']}现在让我们学习解析函数的扩展用法。与上面stringify函数的多参数用法不同,parse函数可以根据用户定义的分隔符和分配器反序列化字符串,以获得相应的对象结果。例如:1:querystring。parsevarquerystring=require;varresult=querystring。作语法分析安慰日志运行结果:{foo:“”,bar:“cool”,xux:“cool',yys:“”}
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: '' }

免责声明:文章转载自《nodejs 的序列化与反序列化》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇Linux基础知识学习:Linux下修改文件名或修改文件夹名称(有待解决问题)基于Redis的Spring cache 缓存介绍下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

深入 js 深拷贝对象

前言 对象是 JS 中基本类型之一,而且和原型链、数组等知识息息相关。不管是面试中,还是实际开发中我们都会碰见深拷贝对象的问题。 顾名思义,深拷贝就是完完整整的将一个对象从内存中拷贝一份出来。所以无论用什么办法,必然绕不开开辟一块新的内存空间。 通常有下面两种方法实现深拷贝: 迭代递归法 序列化反序列化法 我们会基于一个测试用例对常用的实现方法进行...

java反序列化-ysoserial-调试分析总结篇(6)

前言: 这篇记录CommonsCollections6的调试,外层也是新的类,换成了hashset,即从hashset触发其readObject(),yso给的调用链如下图所示 利用链分析: 首先在hashset内部首先获取器容量与负载因子等操作,然后创建hashmap,将ObjectinputStream中的对象放到hashmap中,即调用hashm...

protostuff的坑

1、Protostuff 序列化/反序列化集合等对象 定义一个包装类: public class SerializeDeserializeWrapper<T> { private T data; public static <T> SerializeDeserializeWrapper<T> buil...

序列化悍将Protobuf-Net,入门动手实录

最近在研究web api 2,看了一篇文章,讲解如何提升性能的, 在序列化速度的跑分中,Protobuf一骑绝尘,序列化速度快,性能强,体积小,所以打算了解下这个利器 1:安装篇 谷歌官方没有提供.net的实现,所以在nuget上找了一个移植的 Nuget里搜索Protobuf-net,下载,自动添加到项目中 2:定义数据结构 using ProtoB...

关于大小型项目如何最大限度提高WebAPi性能

前言 WebAPi作为接口请求的一种服务,当我们请求该服务时我们目标是需要快速获取该服务的数据响应,这种情况在大型项目中尤为常见,此时迫切需要提高WebAPi的响应机制,当然也少不了前端需要作出的努力,这里我们只讲述在大小型项目中如何利用后台逻辑尽可能最大限度提高WebAPi性能,我们从以下几个方面来进行阐述。 性能提升一:JSON序列化器(Jil) 在....

java序列化和反序列化

java领域的对象如何传输 基于socket进行对象传输 如果传输的对象没有序列化会报错: 那么如何解决这个问题呢? 实现一个Serializable接口,再次运行就可以看到对象可以正常传输了 public class User implements Serializeable{ } 序列化的意义 当我们对User这个类增加一个Serializa...