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 相关文章推荐
javascript模版引擎-tmpl的bug修复与性能优化分析
Oct 23 Javascript
Javascript中数组方法汇总(推荐)
Apr 01 Javascript
jQuery实现图片走马灯效果的原理分析
Jan 16 Javascript
jquery实现网页定位导航
Aug 23 Javascript
vue2.0实现移动端的输入框实时检索更新列表功能
May 08 Javascript
利用Decorator如何控制Koa路由详解
Jun 26 Javascript
JavaScript中call和apply方法的区别实例分析
Aug 03 Javascript
关于layui toolbar和template的结合使用方法
Sep 19 Javascript
vue实现输入框自动跳转功能
May 20 Javascript
vue使用自定义事件的表单输入组件用法详解【日期组件与货币组件】
Jun 01 Javascript
bootstrap-closable-tab可实现关闭的tab标签页插件
Aug 09 Javascript
全面解析Vue中的$nextTick
Dec 24 Vue.js
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下载文件的详解
2013/06/02 PHP
cookie在javascript中的使用技巧以及隐私在服务器端的设置
2012/12/03 Javascript
bootstrap data与jquery .data
2014/07/07 Javascript
javascript事件冒泡实例分析
2015/05/13 Javascript
浅谈JavaScript中运算符的优先级
2015/07/07 Javascript
JavaScript+html5 canvas绘制缤纷多彩的三角形效果完整实例
2016/01/26 Javascript
基于JavaScript实现图片点击弹出窗口而不是保存
2016/02/06 Javascript
jQuery学习笔记之回调函数
2016/08/15 Javascript
AngularJS 2.0入门权威指南
2016/10/08 Javascript
AngularJS中的按需加载ocLazyLoad示例
2017/01/11 Javascript
async/await与promise(nodejs中的异步操作问题)
2017/03/03 NodeJs
Bootstrap布局之栅格系统学习笔记
2017/05/04 Javascript
angularjs 动态从后台获取下拉框的值方法
2018/08/13 Javascript
Element-UI踩坑之Pagination组件的使用
2018/10/29 Javascript
在 Angular-cli 中使用 simple-mock 实现前端开发 API Mock 接口数据模拟功能的方法
2018/11/28 Javascript
微信小程序实现录音功能
2019/11/22 Javascript
记一次用ts+vuecli4重构项目的实现
2020/05/21 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
Python常用的日期时间处理方法示例
2015/02/08 Python
EM算法的python实现的方法步骤
2018/01/02 Python
解决Django migrate No changes detected 不能创建表的问题
2018/05/27 Python
Python3实现的Mysql数据库操作封装类
2018/06/06 Python
python中property属性的介绍及其应用详解
2019/08/29 Python
Python中的引用和拷贝实例解析
2019/11/14 Python
python Jupyter运行时间实例过程解析
2019/12/13 Python
python 实现查询Neo4j多节点的多层关系
2019/12/23 Python
pytorch 自定义卷积核进行卷积操作方式
2019/12/30 Python
python3中datetime库,time库以及pandas中的时间函数区别与详解
2020/04/16 Python
python selenium 获取接口数据的实现
2020/12/07 Python
岗位说明书范文
2014/05/07 职场文书
模具设计与制造专业自荐书
2014/07/01 职场文书
优秀教师单行材料
2014/12/16 职场文书
公务员政审材料
2014/12/23 职场文书
酒店销售经理岗位职责
2015/04/02 职场文书
大学军训心得体会800字
2016/01/11 职场文书
5个实用的JavaScript新特性
2022/06/16 Javascript