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 相关文章推荐
使用Json比用string返回数据更友好,也更面向对象一些
Sep 13 Javascript
JavaScript获取两个数组交集的方法
Jun 09 Javascript
jQuery实现大转盘抽奖活动仿QQ音乐代码分享
Aug 21 Javascript
Jquery zTree 树控件异步加载操作
Feb 25 Javascript
jQuery组件easyui对话框实现代码
Aug 25 Javascript
浅谈js对象的创建和对6种继承模式的理解和遐想
Oct 16 Javascript
微信公众号菜单配置微信小程序实例详解
Mar 31 Javascript
jquery与js实现全选功能的区别
Jun 11 jQuery
Web技术实现移动监测的介绍
Sep 18 Javascript
微信小程序之蓝牙的链接
Sep 26 Javascript
小程序实现左右来回滚动字幕效果
Dec 28 Javascript
js实现带有动画的返回顶部
Aug 09 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
用php和MySql来与ODBC数据连接
2006/10/09 PHP
php mssql 日期出现中文字符的解决方法
2009/03/10 PHP
php 日期时间处理函数小结
2009/12/18 PHP
PHP autoload与spl_autoload自动加载机制的深入理解
2013/06/05 PHP
php实现用于删除整个目录的递归函数
2015/03/16 PHP
基于laravel制作APP接口(API)
2016/03/15 PHP
php自动提交表单的方法(基于fsockopen与curl)
2016/05/09 PHP
学习ExtJS Column布局
2009/10/08 Javascript
jQuery 核心函数以及jQuery对象
2010/03/23 Javascript
jquery slibings选取同级其他元素的实现代码
2013/11/15 Javascript
jquery实现带缩略图的全屏图片画廊效果实例
2015/06/25 Javascript
AngularJS constant和value区别详解
2017/02/28 Javascript
react实现pure render时bind(this)隐患需注意!
2017/03/09 Javascript
win系统下nodejs环境安装配置
2017/05/04 NodeJs
浅谈React碰到v-if
2018/11/04 Javascript
highcharts.js数据绑定方式代码实例
2019/11/13 Javascript
微信小程序scroll-view实现滚动到锚点左侧导航栏点餐功能(点击种类,滚动到锚点)
2020/06/11 Javascript
举例讲解Python的lambda语句声明匿名函数的用法
2016/07/01 Python
基于python 字符编码的理解
2017/09/02 Python
用Python实现筛选文件脚本的方法
2018/10/27 Python
为何人工智能(AI)首选Python?读完这篇文章你就知道了(推荐)
2019/04/06 Python
使用python3调用wxpy模块监控linux日志并定时发送消息给群组或好友
2019/06/05 Python
python中seaborn包常用图形使用详解
2019/11/25 Python
浅谈tensorflow模型保存为pb的各种姿势
2020/05/25 Python
python 提高开发效率的5个小技巧
2020/10/19 Python
HTML5之消息通知的使用(Web Notification)
2018/10/30 HTML / CSS
常见的软件开发流程有哪些
2015/11/14 面试题
教师查摆问题自查报告
2014/10/11 职场文书
建国大业观后感600字
2015/06/01 职场文书
2015年小学教师培训工作总结
2015/07/21 职场文书
早恋主题班会
2015/08/14 职场文书
决心书格式范文
2015/09/23 职场文书
2016年第104个国际护士节活动总结
2016/04/06 职场文书
甜美蛋糕店的创业计划书模板,拿来即用!
2019/08/21 职场文书
Python+Appium实现自动抢微信红包
2021/05/21 Python
OpenStack虚拟机快照和增量备份实现方法
2022/04/04 Servers