当前位置: 首页 > news >正文

javascript中的对象序列化

JavaScript对象表示法(JavaScript Object Notation,简称JSON)是一种轻量级的数据交换格式,它基于js字面量表示法,是js的一个子集。虽然是一个js的子集但是他与语言无关,它可以用于在现在所有的编程语言编写的应用程序之间进行数据交换。是一种文本格式,比较容易读写。

1.JSON.stringify()-序列化字符串方法

var obj={val:undefined,a:NaN,b:Infinity,c:new Date()};
console.log(JSON.stringify(obj));//{"a":null,"b":null,"c":"2017-12-20T07:45:54.778Z"}

由以上的代码可以看出,对于一个对象(存在许多坑)中值为undefined,序列化该对象时,这个值将会被自动忽略,对于一个对象中值为NaN,Infinity的,序列化该对象时,会转变为null,对于值为new Date()会显示必要的时间字符串。。

2.JSON.parse()-将字符串转化成对象

var obj2=JSON.parse('{"number":10}');
console.log(obj2.number);//10

从上面代码可以看出,对于一个字符串,用JSON.parse()方法转化成对象后,便可以通过访问对象的系列方法进行访问。。

3.序列化字符串,自定义

var obj={
            x:1,
            y:2,
            o:{
                o1:1,
                o2:2,
                toJSON:function(){
                    return this.o1+this.o2;
                }
            }
        };
console.log(JSON.stringify(obj));//{"x":1,"y":2,"o":3}

从以上代码可以看出,可以通过自定义的方式序列化一些字符串。。

相关文章:

  • javascript中改变this的指向
  • css中的px、em 、rem的区别
  • 深入理解js中的闭包
  • Form表单只提交数据而不进行页面跳转的方法
  • ajaxForm与ajaxSubmit的区别
  • rem是如何实现自适应布局的
  • 如何实现图片的异步加载
  • AMD和CMD的区别
  • 使用Cesium.js加载3D模型
  • js中for in与for of之间的差异
  • Cesium实现三维可视化一般步骤
  • Vue2.0 探索之路——生命周期和钩子函数的一些理解
  • vuejs实践todolist列表
  • vue中的watch监听事件机制
  • CommonJS、AMD、CMD的区别
  • [case10]使用RSQL实现端到端的动态查询
  • 2017-09-12 前端日报
  • AWS实战 - 利用IAM对S3做访问控制
  • JSDuck 与 AngularJS 融合技巧
  • JS数组方法汇总
  • learning koa2.x
  • Linux链接文件
  • python docx文档转html页面
  • SpiderData 2019年2月13日 DApp数据排行榜
  • Spring核心 Bean的高级装配
  • vue2.0一起在懵逼的海洋里越陷越深(四)
  • 从地狱到天堂,Node 回调向 async/await 转变
  • 分享一个自己写的基于canvas的原生js图片爆炸插件
  • 给Prometheus造假数据的方法
  • 基于Mobx的多页面小程序的全局共享状态管理实践
  • 检测对象或数组
  • 想晋级高级工程师只知道表面是不够的!Git内部原理介绍
  • 智能网联汽车信息安全
  • Java数据解析之JSON
  • Java总结 - String - 这篇请使劲喷我
  • Salesforce和SAP Netweaver里数据库表的元数据设计
  • ​ubuntu下安装kvm虚拟机
  • ​软考-高级-系统架构设计师教程(清华第2版)【第9章 软件可靠性基础知识(P320~344)-思维导图】​
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (26)4.7 字符函数和字符串函数
  • (ResultSet.TYPE_SCROLL_INSENSITIVE,ResultSet.CONCUR_READ_ONLY)讲解
  • *上位机的定义
  • .net core使用ef 6
  • .Net Memory Profiler的使用举例
  • .NET 材料检测系统崩溃分析
  • .NET 跨平台图形库 SkiaSharp 基础应用
  • .net 重复调用webservice_Java RMI 远程调用详解,优劣势说明
  • .NET/C# 推荐一个我设计的缓存类型(适合缓存反射等耗性能的操作,附用法)
  • .net打印*三角形
  • .net下的富文本编辑器FCKeditor的配置方法
  • .net项目IIS、VS 附加进程调试
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • /etc/sudoers (root权限管理)
  • @test注解_Spring 自定义注解你了解过吗?
  • [ Linux Audio 篇 ] 音频开发入门基础知识