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中的location用法简单介绍
Mar 07 Javascript
理解Javascript_03_javascript全局观
Oct 11 Javascript
JQuery之拖拽插件实现代码
Apr 14 Javascript
js时间戳格式化成日期格式的多种方法
Nov 11 Javascript
JQuery解析HTML、JSON和XML实例详解
Mar 29 Javascript
jquery仿搜索自动联想功能代码
May 23 Javascript
Bootstrap导航条可点击和鼠标悬停显示下拉菜单
Nov 25 Javascript
layui弹出层效果实现代码
May 19 Javascript
AngualrJs清除定时器遇到的坑
Oct 13 Javascript
实例讲解JavaScript预编译流程
Jan 24 Javascript
LayUI数据接口返回实体封装的例子
Sep 12 Javascript
express异步函数异常捕获示例详解
Nov 30 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
WIN98下Apache1.3.14+PHP4.0.4的安装
2006/10/09 PHP
PHP 变量定义和变量替换的方法
2009/07/30 PHP
php中Ioc(控制反转)和Di(依赖注入)
2017/05/07 PHP
PHP实现按之字形顺序打印二叉树的方法
2018/01/16 PHP
php封装实现钉钉机器人报警接口的示例代码
2020/08/08 PHP
对YUI扩展的Gird组件 Part-1
2007/03/10 Javascript
Javascript实现重力弹跳拖拽运动效果示例
2013/06/28 Javascript
Jquery网页出现的乱码问题的三种解决方法
2013/06/30 Javascript
详解JavaScript的策略模式编程
2015/06/24 Javascript
尝试动手制作javascript放大镜效果
2015/12/25 Javascript
JavaScript电子时钟倒计时第二款
2016/01/10 Javascript
jQuery图片旋转插件jQueryRotate.js用法实例(附demo下载)
2016/01/21 Javascript
JS实现快速的导航下拉菜单动画效果附源码下载
2016/11/01 Javascript
jQuery+HTML5实现弹出创意搜索框层
2016/12/29 Javascript
微信小程序实战之上拉(分页加载)效果(2)
2017/04/17 Javascript
vue Render中slots的使用的实例代码
2017/07/19 Javascript
vue 中的keep-alive实例代码
2018/07/20 Javascript
vue实现带复选框的树形菜单
2019/05/27 Javascript
使用微信SDK自定义分享的方法
2019/07/03 Javascript
vue 解决setTimeOut和setInterval函数无效报错的问题
2020/07/30 Javascript
Python文件夹与文件的操作实现代码
2014/07/13 Python
Python获取央视节目单的实现代码
2015/07/25 Python
python tkinter界面居中显示的方法
2018/10/11 Python
浅谈python连续赋值可能引发的错误
2018/11/10 Python
使用TensorFlow实现二分类的方法示例
2019/02/05 Python
Python实现钉钉发送报警消息的方法
2019/02/20 Python
numpy linalg模块的具体使用方法
2019/05/26 Python
python使用装饰器作日志处理的方法
2019/07/11 Python
北京RT科技有限公司.net工程师面试题
2013/02/15 面试题
大学专科生推荐信范文
2013/11/23 职场文书
2014年端午节活动方案
2014/03/11 职场文书
运动会宣传口号
2014/06/09 职场文书
大专毕业生求职信
2014/07/05 职场文书
幼儿园亲子活动感想
2015/08/07 职场文书
浅谈python中的多态
2021/06/15 Python
Django + Taro 前后端分离项目实现企业微信登录功能
2022/04/07 Python