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 字符串乘法
Aug 20 Javascript
JavaScript 计算图片加载数量的代码
Jan 01 Javascript
浅析jquery某一元素重复绑定的问题
Jan 03 Javascript
javascript实现禁止右键和F12查看源代码
Dec 26 Javascript
jQuery ztree实现动态树形多选菜单
Aug 12 Javascript
jquery对Json的各种遍历方法总结(必看篇)
Sep 29 Javascript
详谈表单格式化插件jquery.serializeJSON
Jun 23 jQuery
JS中type="button"和type="submit"的区别
Jul 04 Javascript
Webpack性能优化 DLL 用法详解
Aug 10 Javascript
Vue组件中prop属性使用说明实例代码详解
May 31 Javascript
小程序富文本提取图片可放大缩小
May 26 Javascript
解决echarts中横坐标值显示不全(自动隐藏)问题
Jul 20 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
在任意字符集下正常显示网页的方法一
2007/04/01 PHP
PHP中函数内引用全局变量的方法
2008/10/20 PHP
php摘要生成函数(无乱码)
2012/02/04 PHP
完美解决:Apache启动问题―(OS 10022)提供了一个无效的参数
2013/06/08 PHP
Linux下PHP安装mcrypt扩展模块笔记
2014/09/10 PHP
反射调用private方法实践(php、java)
2015/12/21 PHP
Yii控制器中filter过滤器用法分析
2016/07/15 PHP
斜45度寻路实现函数
2009/08/20 Javascript
Extjs 几个方法的讨论
2010/01/28 Javascript
六款帮助你实现惊艳视差滚动效果的jQuery插件
2012/09/14 Javascript
JavaScript1.6数组新特性介绍以及JQuery的几个工具方法
2013/12/06 Javascript
js获取上传文件大小示例代码
2014/04/10 Javascript
js分页代码分享
2014/04/28 Javascript
AngularJS监听路由变化的方法
2017/03/07 Javascript
详解vue.js之绑定class和style的示例代码
2017/08/24 Javascript
Vue结合Video.js播放m3u8视频流的方法示例
2018/05/04 Javascript
vue项目中跳转到外部链接的实例讲解
2018/09/20 Javascript
js实现html滑动图片拼图验证
2020/06/24 Javascript
python使用邻接矩阵构造图代码示例
2017/11/10 Python
基于python3实现socket文件传输和校验
2018/07/28 Python
使用python实现抓取腾讯视频所有电影的爬虫
2019/04/15 Python
Python两台电脑实现TCP通信的方法示例
2019/05/06 Python
Python web如何在IIS发布应用过程解析
2020/05/27 Python
Keras中 ImageDataGenerator函数的参数用法
2020/07/03 Python
Python filter过滤器原理及实例应用
2020/08/18 Python
python+django+selenium搭建简易自动化测试
2020/08/19 Python
使用django自带的user做外键的方法
2020/11/30 Python
世界最大域名注册商:GoDaddy
2016/07/24 全球购物
教学实习自我评价
2014/01/28 职场文书
内蒙古鄂尔多斯市市长寄语
2014/04/10 职场文书
焦裕禄精神心得体会
2014/09/02 职场文书
2015年小学生新年寄语
2014/12/08 职场文书
通报表扬范文
2015/01/17 职场文书
幼儿园心得体会范文
2016/01/21 职场文书
如何写好竞聘报告
2019/04/03 职场文书
导游词之平津战役纪念馆
2019/11/04 职场文书