js之oop <五>对象序列化(js的JSON操作)
js对象序列化的过程,就是对象转换为JSON的过程。
JSON.stringify() 将对象序列化成JSON。(接收对象,输出字符串)
var obj = {x:2,y:3};
var str = JSON.stringify(obj); //输出 {"x":2,"y":3}
序列化时,对象的函数序列化时不会显示。
var obj = {a:1,b:2,c:function(){ console.log(3); }};
var str = JSON.stringify(obj); //输出 {"a":1,"b":2}
对象函数若有toJSON,序列化后其他属性都不会显示,只会显示toJSON的返回值,若toJSON无返回值则显示undefined。如果在toJSON之后有toJSON属性,则之前的toJSON函数无效,其他对象属性正常显示。
var obj = {a:1,b:2,toJSON:function(){ return "这是一个对象" },j:4,k:5};
var str = JSON.stringify(obj); //输出 "这是一个对象"
var obj = {a:1,b:2,toJSON:function(){ return "这是一个对象" },j:4,k:5,toJSON:6};
var str = JSON.stringify(obj); //输出 {"a":1,"b":2,"toJSON":6,"j":4,"k":5}
JSON.parse() 将JSON反序列化为对象。(接收字符串,输出对象)
var json_s = '{"zhong":"中","guo":"国"}';
var obj = JSON.parse(json_s); //输出 obj.zhong = "中" obj.guo = "国"
序列化时,
若对象属性值为undefined,序列化时不会显示;
若对象属性值为NaN或Infinity,序列化时都被视为null;
若对象属性值为时间,序列化时会被转换为UTC的时间格式。
var obj = {a:undefined,b:NaN,c:Infinity,d:new Date()};
var str = JSON.stringify(obj); //输出 {"b":null,"c":null,"d":"2016-09-11T15:44:21.725Z"}
js之oop <五>对象序列化(js的JSON操作)的更多相关文章
- javaIO流(五)--对象序列化
一.序列化概念 几乎只要是我们的java开发,就一定会存在有序列化的概念,而正是有序列化的概念逐步发展,慢慢也有了更多的系列化的标准.--所谓的对象序列化指的是将内存中保存的对象,以二进制数据流的形式 ...
- js之oop <二> 对象属性
js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b ...
- js之oop <四>对象管理
对象扩展管理 Object.isExtensible() 检测对象是否可扩展(一般返回true).Object.preventExtensions() 防止对象扩展. var p = {p1:&quo ...
- Node.js 学习(五)Node.js 事件循环
Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. Node.j ...
- JS中的DOM对象及JS对document对像的操作
DOM对象 windows:属性:opener(打开者) 方法:open().close(),setTimeout().setInterval()... location:属性:href 方法:rel ...
- Node.js学习笔记(五) --- 使用Node.js搭建Web服务器
1. Node.js 创建的第一个应用 1.引入http模块 var http = require("http"); 2. 创建服务器接下来我们使用 http.createServ ...
- cube.js 学习(五)cube.js joins 说明
cube.js 也支持join, 参考格式 joins: { TargetCubeName: { relationship: `belongsTo` || `hasMany` || `hasOne ...
- 使用原生JS进行字符串转对象
字符串转对象 目的 工作中如果需要原生 JS 完成字符转对象的话可以通过 JSON.parse(str), 但是这个方法是ES5中才出现, 如果需要兼容低版本就需要其它方法 使用原生 JS 解决字符串 ...
- DOM对象和js对象以及jQuery对象的区别
DOM对象和js对象以及jQuery对象的区别 DOM对象和js对象以及jQuery对象的区别 一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际 ...
随机推荐
- WordPress 添加面包屑导航
所谓面包屑,就是类似这种:首页 > 公司简介 > 发展历史 展示网站树型结构,并让网站访问者随时知道自己所处的位置,方便返回上几级. 将下面的代码添加到主题的 functions.php ...
- 解决Tomcat无法shutdown进程
转自:http://my.oschina.net/yongyi/blog/405198 问题分析 这个在windows下没有碰到过,因为此前跑Tomcat都是以服务而不是命令脚本的形式跑的,而且已经换 ...
- LeetCode Power of Three
原题链接在这里:https://leetcode.com/problems/power-of-three/ 与Power of Two类似.检查能否被3整除,然后整除,再重复检查结果. Time Co ...
- Eclipse Memory Analyzer,内存泄漏插件,安装使用一条龙
网上文档很多,但最初都有问题.整理一份,作为备份.使用过程:开发代码写完后,对可能出现内存溢出的代码,添加配置文件,生成.hprof文件,用memory Analyzer分析排查问题,且泄漏内存大小可 ...
- favicon.ico的制作
1.选取需要的图片(jpg的格式等) 2.在网上搜索favicon.ico的制作,将jpg转为ico 3.在html中输入<link rel="shortcut icon" ...
- HttpServlet 详解(注!仿)
Servlet的框架是由两个Java包组成:javax.servlet和javax.servlet.http. 在javax.servlet包中定义了所有的Servlet类都必须实现或扩展的的通用接口 ...
- python file模块 替换输入内容脚本
root@python-10:/home/liujianzuo/python/test# ls passwd rc.local test1 root@python-10:/home/liujianzu ...
- CodeMirror很好用
基于Javascript的web的文本编辑器 各种强大 支持多种语言的语法高亮, 多种主题 vim ,emacs 快捷键
- ios - 文件保存路径的获取
"应用程序包": 这里面存放的是应用程序的源文件,包括资源文件和可执行文件. 获取方式: NSString *path = [[NSBundle mainBundle] bundl ...
- RDIFramework.NET ━ 9.2 员工管理 ━ Web部分
RDIFramework.NET ━ .NET快速信息化系统开发框架 9.2 员工管理 -Web部分 员工(职员)管理主要是对集团.企事业内部员工进行管理.在后面的章节可以看到有一个用户管理,这两者 ...