序列化的JavaScript
下载 序列化的JavaScript
序列化的JavaScript
将JavaScript序列化为包含正则表达式、日期和函数的JSON超集。
概述
这个包中的代码最初是作为表示状态的内部模块。为了扩展它的用途,它现在以序列化-javascript的形式存在——npm上的一个独立包。
您可能想知道:JSON.stringify()!呢?我们发现有时需要序列化JavaScript函数、正则表达式、日期、集合或映射。一个很好的示例是使用客户端URL路由的web应用程序,其中路由定义是需要从服务器共享到客户机的regexp。但是这个模块对于节点进程之间的通信也很有用。
从这个包的单一导出函数返回的字符串是文字JavaScript,它可以被保存到一个。js文件,或嵌入到一个HTML文档通过制作一个脚本的内容。元素。
HTML字符和JavaScript行终止符会自动转义。
请注意ES6集的串行化&map需要支持Array.from(在IE或Node中不可用<0.12)或数组。来自polyfill。
安装
安装使用npm:
安装序列化-javascript
使用
var serialize = require('serialize-javascript');
序列化({
str:“字符串”,
num: 0,
obj: {foo: 'foo'},
[1,2,3],
bool:没错,
零:空,
undef:未定义的,
正:无穷,
日期:新日期(“2016年4月28日星期四22:02:17 GMT”)
新地图([['hello', 'world']]),
set: new set ([123,456]),
fn: function echo(arg) {return arg;},
再保险:/ ([^ \ s] +) / g,
大:长整型数字(10),
});
以上将产生以下字符串输出:
{”str”:“弦”、“num”:0,“obj”:{“foo”:“foo”},“加勒比海盗”:(1、2、3),“bool”:真的,“零”:空,“undef”:定义,“正”:无穷,“日期”:新的日期(“2016 - 04 - 28 t22:02:17.000z”),“地图”:新地图([[“你好”、“世界”]]),“设置”:新的([123456]),fn:函数回波(arg){返回参数;},“重新”:新的正则表达式(((^ \ \ \ \ s] +)”,“g”),“大”:长整型数字(10)}”
注意:要生成美化的字符串,可以传递第二个可选参数给serialize(),以定义缩进使用的空格数。
自动转义HTML字符
这个包的主要特性是将代码序列化为文字JavaScript字符串,通过添加它作为脚本的内容,可以嵌入到HTML文档中。元素。为了保证安全,HTML字符和JavaScript行终止符会自动转义。
序列化({
haxorXSS:“& lt; / script>”
});
以上将产生以下字符串,HTML转义输出,这是安全的放入一个HTML文档,因为它不会导致内联脚本元素终止:
”{haxorXSS”:“\ \ u003C \ \ u002Fscript \ \ u003E“}”
您可以将一个可选的不安全参数传递给serialize()来进行直接序列化。
选项
serialize()函数接受一个options对象作为它的第二个参数。所有选项默认为未定义:
options.space
这个选项与可以传递给JSON.stringify的空间参数相同。它可用于向序列化输出中添加空格和缩进,使其更具可读性。
序列化(obj,{空间:2});
options.isJSON
此选项是用于序列化()的信号,表明被序列化的对象不包含任何函数或regexps值。这使得热路径能够将序列化速度提高三倍以上。如果您正在序列化大量数据,并且知道它是纯JSON,那么您可以启用这个选项来加速。
注意:在使用此选项时,输出仍将被转义,以防止XSS。
序列化(obj, {isJSON:真});
options.unsafe
此选项向serialize()发出信号,表示我们希望直接进行转换,而不需要XSS保护。需要显式地将该选项设置为true。HTML字符和JavaScript行终止符不会被转义。你得自己滚。
序列化(obj,{不安全:真});
options.ignoreFunction
此选项表示不希望序列化JavaScript函数的serialize()。
就像JSON一样处理函数。stringify可以,但是其他功能也可以正常工作。
序列化(obj, {ignoreFunction:真});
反序列化
对于某些用例,您可能还需要对字符串进行反序列化。这显然不是本模块的一部分。然而,你可以很容易地写它自己:
函数反序列化(serializedJavascript) {
返回eval('(' + serializedJavascript + ')');
}
注意:不要忘记序列化的javascript周围的括号,因为左括号{将被认为是主体的开始。
许可证
这个软件是免费使用的雅虎!公司。BSD许可。
有关许可文本和版权信息,请参阅许可文件。本文转载于:http://www.diyabc.com/frontweb/news33295.html
序列化的JavaScript的更多相关文章
- 20.2 解析与序列化【JavaScript高级程序设计第三版】
JSON 之所以流行,拥有与JavaScript 类似的语法并不是全部原因.更重要的一个原因是,可以把JSON 数据结构解析为有用的JavaScript 对象.与XML 数据结构要解析成DOM 文档而 ...
- LeetCode 297.序列化二叉树 - JavaScript
题目描述 序列化是将一个数据结构或者对象转换为连续的比特位的操作,进而可以将转换后的数据存储在一个文件或者内存中,同时也可以通过网络传输到另一个计算机环境,采取相反方式重构得到原数据. 请设计一个算法 ...
- 《JAVASCRIPT高级程序设计》JSON语法/解析/序列化
JSON是一种数据格式,不是一种编程语言. 一.语法 JSON语法可以表示以下三种类型的值:简单值.对象.数组. 1.简单值 最简单的JSON数据值就是简单值: 5 "hello world ...
- javascript数据相关处理,序列化反序列化,数据编码与解码
对象序列化简而言之,将对象转为字符串.在数据的传输过程中,经常会使用到对象序列化. javascript中常用的对象序列化:JSON.stringify(); javascript中常用的对象反序列化 ...
- JavaScript状态机程序逻辑编辑器
制作背景 之前做Win8 Metro动态加载内容框架的时候,由于采用了XAML+JavaScript的方法,程序复杂的执行逻辑是由JavaScript控制的,而页面一多,流程一复杂,制作起来就非常麻烦 ...
- Javascript:JSON总结
JSON(JavaScript Object Notation) 是一种轻量级的数据交换格式.它是基于ECMAScript的一个子集,采用完全独立于语言的文本格式.这些特性使JSON成为理想的数据交换 ...
- 超高性能的json序列化之MVC中使用Json.Net
先不废话,直接上代码 Asp.net MVC自带Json序列化 /// <summary> /// 加载组件列表 /// </summary> /// <param na ...
- C#.NET序列化XML、JSON、二进制微软自带DLL与newtonsoft(json.net)
序列化是将对象转换成另一种格式(XML.json.二进制byte[]) JSON序列化 .NET中有三种常用的JSON序列化的类,分别是: Newtonsoft.Json.JsonConvert类(推 ...
- 读javascript高级程序设计13-JSON
JSON是一个轻量级的数据格式,可以简化表示数据结构的工作量.在实际工作中,我们经常用它来传递数据,不过对于其使用的一些细节还是需要注意的.在ECMAScript5中定义了原生的JSON对象,可以用来 ...
随机推荐
- A Walk Through the Forest (最短路+记忆化搜索)
Jimmy experiences a lot of stress at work these days, especially since his accident made working dif ...
- Left Mouse Button (bfs)
Mine sweeper is a very popular small game in Windows operating system. The object of the game is to ...
- RPC之总体架构
要完成一个高可用.高性能的RPC框架,需要对其架构的设计进行梳理,这里参考xxl-rpc框架,对整个项目进行梳理. 以上就是项目的整个构架,分为四个部分: 第一个是服务发布与引入,基于JDK动态代理以 ...
- leetcode-双指针遍历
编写一个函数,其作用是将输入的字符串反转过来.输入字符串以字符数组 char[] 的形式给出.不要给另外的数组分配额外的空间,你必须原地修改输入数组.使用 O(1) 的额外空间解决这一问题.你可以假设 ...
- python应用 处理excel数据
实现功能 excel表格中有4列数,分别为RMF计算得到的 β,γ,势能面及组态,需要挑选出相同 β 值下势能面最低时的组态.为了减小数据量,先将 β 值保留两位小数. 代码 import xlrd ...
- PHP的七个数组指针函数
1. PHP的七个数组指针函数 函数 描述 reset() 将一个数组的内部指针重置到首位,并返回第一个元素的值 end() 将一个数组的内部指针移动到数组的最后一个元素所在的位置,并返回最后一个元素 ...
- .NET Core原理(不知道怎么命名合适)
作者:cmliu:.NET Core启动都做了什么 .NET Core默认启动时的流程,您可以将图片另存为,在本地放大查看 .NET Core默认模板都做了些什么,首先贴出模板里面的Program.c ...
- [程序员代码面试指南]栈和队列-最大值减去最小值 小于或等于num 的子数组的数量(单调队列)
题目 给定数组arr和整数num,求数组的子数组中有多少个的满足"最大值减去最小值<=num". 解题思路 分析题目,有结论: 如果数组arr[i...j]满足条件,则它的每 ...
- [ArcGIS]高程地图-把DEM栅格数据(.tif)转换为TIN矢量数据,并储存TIN数据。
把DEM数据(.tif)获得栅格数据对应的经纬度及高程信息,存到地理数据库 一.预处理工作 栅格数据的合并--目的:将原始4张Dem(.tif)数据合并为一张Dem(.tif) https://wen ...
- js 去掉字符串最后一个逗号:笑死我了
今天突然遇到js 去掉字符串最后一个逗号的问题,本想偷懒搜个代码吧,没想到看到百度的第一条记录是这么一篇文章. 网易博客: http://blog.163.com/li_crane/blog/stat ...