js序列化和反序列化的使用讲解


Posted in Javascript onJanuary 19, 2019

(1)序列化

即js中的Object转化为字符串

1.使用obj.toJSONString()

var str=obj.toJSONString(); //将JSON对象转化为JSON字符

2.使用JSON.stringify(obj)

var str=JSON.stringify(obj); //将JSON对象转化为JSON字符

(2)反序列化

即js中JSON字符串转化为Object

1.使用eval('('+josnStr+')')

var obj=eval("("+data+")");

为什么要 eval这里要添加 "("+data+");//”呢?

原因在于:eval本身的问题。 由于json是以”{}”的方式来开始以及结束的,在JS中,它会被当成一个语句块来处理,所以必须强制性的将它转换成一种表达式。

2.使用jsonStr.parseJSON()

​var obj = jsonStr.parseJSON(); //由JSON字符串转换为JSON对象

3.使用parse(jsonStr)

var obj = JSON.parse(data); //由JSON字符串转换为JSON对象

(3)使用场景

1.向后台传递参数、接收后台返回值

  如果后台返回的是一个String(Object序列化后返回),那么需要在js中使用eval或者parse等转化为Object再使用;

  如果返回时传递了类型,比如就是Object,那么直接使用就好

2.在页面间传递数据,特别是数组时

  需要使用序列化,否则IE会报错:不能执行已经释放Script的代码

3.在进行本地存储时

  存储在本地window.localStorage.setItem(key,value)存储的value是json序列化的字符串;获取得到的window.localSorage.getItem(key)也是json序列化的字符串,需要经过json的反序列化进行使用(常见json序列化数组)

若有不足请多多指教!希望给您带来帮助!

总结

以上就是这篇文章的全部内容了,希望本文的内容对大家的学习或者工作具有一定的参考学习价值,谢谢大家对三水点靠木的支持。如果你想了解更多相关内容请查看下面相关链接

Javascript 相关文章推荐
js实现的切换面板实例代码
Jun 17 Javascript
JavaScript中的prototype.bind()方法介绍
Apr 04 Javascript
【经典源码收藏】jQuery实用代码片段(筛选,搜索,样式,清除默认值,多选等)
Jun 07 Javascript
js手动播放图片实现图片轮播效果
Sep 17 Javascript
BootStrap实现轮播图效果(收藏)
Dec 30 Javascript
从零开始学习Node.js系列教程三:图片上传和显示方法示例
Apr 13 Javascript
javascript实现手动点赞效果
Apr 09 Javascript
基于vue实现一个神奇的动态按钮效果
May 15 Javascript
react quill中图片上传由默认转成base64改成上传到服务器的方法
Oct 30 Javascript
Vue实现push数组并删除的例子
Nov 01 Javascript
JavaScript实现答题评分功能页面
Jun 24 Javascript
vue使用screenfull插件实现全屏功能
Sep 17 Javascript
vue-router传参用法详解
Jan 19 #Javascript
vue-router实现嵌套路由的讲解
Jan 19 #Javascript
vue-router实现编程式导航的代码实例
Jan 19 #Javascript
vue数据操作之点击事件实现num加减功能示例
Jan 19 #Javascript
vue-router命名路由和编程式路由传参讲解
Jan 19 #Javascript
Vue实现的父组件向子组件传值功能示例
Jan 19 #Javascript
vue-router命名视图的使用讲解
Jan 19 #Javascript
You might like
Windows下IIS6/Apache2.2.4+MySQL5.2+PHP5.2.1安装配置方法
2007/05/03 PHP
PHP+MYSQL 出现乱码的解决方法
2008/08/08 PHP
php解析xml提示Invalid byte 1 of 1-byte UTF-8 sequence错误的处理方法
2013/11/14 PHP
PHP CURL 多线程操作代码实例
2015/05/13 PHP
PHP 下载文件时如何自动添加bom头及解释BOM头和去掉bom头的方法
2016/01/04 PHP
ThinkPHP3.2.3框架Memcache缓存使用方法实例总结
2019/04/15 PHP
php实现微信小程序授权登录功能(实现流程)
2019/11/13 PHP
javascript 数据类型转换(parseInt,parseFloat)
2010/07/20 Javascript
JavaScript中使用构造函数实现继承的代码
2010/08/12 Javascript
EASYUI TREEGRID异步加载数据实现方法
2012/08/22 Javascript
JS短路原理的应用示例 精简代码的途径
2013/12/13 Javascript
JS阻止冒泡事件以及默认事件发生的简单方法
2014/01/17 Javascript
JS 使用for循环遍历子节点查找元素
2014/09/06 Javascript
推荐9款炫酷的基于jquery的页面特效
2014/12/07 Javascript
javascript中定义类的方法详解
2015/02/10 Javascript
js实现下拉列表选中某个值的方法(3种方法)
2015/12/17 Javascript
浅析Node.js:DNS模块的使用
2016/11/23 Javascript
详解使用Visual Studio Code对Node.js进行断点调试
2017/09/14 Javascript
jQuery实现的鼠标滚轮控制图片缩放功能实例
2017/10/14 jQuery
详解Webstorm 新建.vue文件支持高亮vue语法和es6语法
2017/10/26 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
jQuery基于随机数解决中午吃什么去哪吃问题示例
2018/12/29 jQuery
layui 解决富文本框form表单提交为空的问题
2019/10/26 Javascript
JS实现滑动导航效果
2020/01/14 Javascript
three.js中多线程的使用及性能测试详解
2021/01/07 Javascript
[01:01:35]Optic vs paiN 2018国际邀请赛小组赛BO2 第二场 8.19
2018/08/21 DOTA
Python数据拟合与广义线性回归算法学习
2017/12/22 Python
Python实现PS滤镜功能之波浪特效示例
2018/01/26 Python
Python实用库 PrettyTable 学习笔记
2019/08/06 Python
英国独特的时尚和生活方式品牌:JOY
2018/03/17 全球购物
安全检查与奖惩制度
2014/01/23 职场文书
《桂林山水》教学反思
2014/02/08 职场文书
群众路线党员个人整改措施
2014/10/27 职场文书
工商局个人工作总结
2015/03/03 职场文书
2016年小学生迎国庆广播稿
2015/12/18 职场文书
python如何在word中存储本地图片
2021/04/07 Python