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类型转换使用方法
Feb 08 Javascript
使用jQuery.wechat构建微信WEB应用
Oct 09 Javascript
用JavaScript实现页面重定向功能的教程
Jun 04 Javascript
使用Raygun对Node.js应用进行错误处理的方法
Jun 23 Javascript
JS实现仿Windows7风格的网页右键菜单效果代码
Sep 11 Javascript
jquery设置表单元素为不可用的简单代码
Jul 04 Javascript
Bootstrap在线电子商务网站实战项目5
Oct 14 Javascript
yarn的使用与升级Node.js的方法详解
Jun 04 Javascript
原生JS实现图片网格式渐显、渐隐效果
Jun 05 Javascript
webuploader分片上传的实现代码(前后端分离)
Sep 10 Javascript
JavaScript中this用法学习笔记
Mar 17 Javascript
详细聊聊vue中组件的props属性
Nov 02 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
xml+php动态载入与分页
2006/10/09 PHP
用PHP 快速生成 Flash 动画的方法
2007/03/06 PHP
php 随机排序广告的实现代码
2011/05/09 PHP
php 使用curl模拟登录人人(校内)网的简单实例
2016/06/06 PHP
php实现评论回复删除功能
2017/05/23 PHP
PHP封装的XML简单操作类完整实例
2017/11/13 PHP
NodeJS的模块写法入门(实例代码)
2012/03/07 NodeJs
js实现小窗口拖拽效果
2016/12/03 Javascript
微信小程序之拖拽排序(代码分享)
2017/01/21 Javascript
详解Angularjs在控制器(controller.js)中使用过滤器($filter)格式化日期/时间实例
2017/02/17 Javascript
微信小程序仿美团城市选择
2018/06/06 Javascript
简述vue状态管理模式之vuex
2018/08/29 Javascript
关于vue v-for循环解决img标签的src动态绑定问题
2018/09/18 Javascript
node.js环境搭建图文详解
2018/09/19 Javascript
jQuery 同时获取多个标签的指定内容并储存为数组
2018/11/20 jQuery
vue发送websocket请求和http post请求的实例代码
2019/07/11 Javascript
JS中封装axios来管控api的2种方式
2019/09/11 Javascript
JS实现随机抽取三人
2019/11/06 Javascript
jQuery实现可编辑的表格
2019/12/11 jQuery
js实现搜索提示框效果
2020/09/05 Javascript
vue的webcamjs集成方式
2020/11/16 Javascript
python爬虫超时的处理的实例
2018/12/19 Python
python 利用浏览器 Cookie 模拟登录的用户访问知乎的方法
2019/07/11 Python
Python定时任务随机时间执行的实现方法
2019/08/14 Python
Django创建一个后台的基本步骤记录
2020/10/02 Python
什么是接口(Interface)?
2013/02/01 面试题
劳动模范事迹材料
2014/01/19 职场文书
理财学专业自荐书
2014/06/28 职场文书
计算机网络专业自荐信
2014/07/04 职场文书
领导干部整治奢华浪费之风思想汇报
2014/10/07 职场文书
外出听课学习心得体会
2016/01/15 职场文书
2016年三八红旗手先进事迹材料
2016/02/26 职场文书
运动会主持人开幕词
2016/03/04 职场文书
pandas中DataFrame数据合并连接(merge、join、concat)
2021/05/30 Python
关于antd tree 和父子组件之间的传值问题(react 总结)
2021/06/02 Javascript
java版 联机五子棋游戏
2022/05/04 Java/Android