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操作)的更多相关文章

  1. javaIO流(五)--对象序列化

    一.序列化概念 几乎只要是我们的java开发,就一定会存在有序列化的概念,而正是有序列化的概念逐步发展,慢慢也有了更多的系列化的标准.--所谓的对象序列化指的是将内存中保存的对象,以二进制数据流的形式 ...

  2. js之oop <二> 对象属性

    js中对象属性可以动态添加和删除.删除对象属性用delete关键字. function obj(){ } var oo = new obj(); oo.a = "a"; oo.b ...

  3. js之oop <四>对象管理

    对象扩展管理 Object.isExtensible() 检测对象是否可扩展(一般返回true).Object.preventExtensions() 防止对象扩展. var p = {p1:&quo ...

  4. Node.js 学习(五)Node.js 事件循环

    Node.js 是单进程单线程应用程序,但是通过事件和回调支持并发,所以性能非常高. Node.js 的每一个 API 都是异步的,并作为一个独立线程运行,使用异步函数调用,并处理并发. Node.j ...

  5. JS中的DOM对象及JS对document对像的操作

    DOM对象 windows:属性:opener(打开者) 方法:open().close(),setTimeout().setInterval()... location:属性:href 方法:rel ...

  6. Node.js学习笔记(五) --- 使用Node.js搭建Web服务器

    1. Node.js 创建的第一个应用 1.引入http模块 var http = require("http"); 2. 创建服务器接下来我们使用 http.createServ ...

  7. cube.js 学习(五)cube.js joins 说明

      cube.js 也支持join, 参考格式 joins: { TargetCubeName: { relationship: `belongsTo` || `hasMany` || `hasOne ...

  8. 使用原生JS进行字符串转对象

    字符串转对象 目的 工作中如果需要原生 JS 完成字符转对象的话可以通过 JSON.parse(str), 但是这个方法是ES5中才出现, 如果需要兼容低版本就需要其它方法 使用原生 JS 解决字符串 ...

  9. DOM对象和js对象以及jQuery对象的区别

    DOM对象和js对象以及jQuery对象的区别 DOM对象和js对象以及jQuery对象的区别 一.DOM对象 文档对象模型简称DOM,是W3C组织推荐的处理可扩展置标语言的标准编程接口. DOM实际 ...

随机推荐

  1. KMP快速字符串匹配

    KMP算法是一种改进的字符串匹配算法,由D.E.Knuth,J.H.Morris和V.R.Pratt同时发现.KMP算法的关键是利用匹配失败后的信息,从错误中吸取经验,尽量减少模式串与主串的匹配次数以 ...

  2. 主动模式下FTP的详细工作过程(转) 挺详细

    主动模式下FTP的详细工作过程   PORT FTP是常用的FTP工作方式,当客户端的连接请求到来时,FTP服务器会利用默认的21端口与客户端建立连接,该连接属于命令通道,利用该通道来下达控 制指令: ...

  3. Python中的函数修饰符@

    首先,什么是函数修饰符?函数修饰符就是对原有函数做一层包装.比如有以下两个函数: 复制代码 def func1(): print 'I am function func1' def func2(): ...

  4. Oracle等待事件db file parallel read

    SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'db file ...

  5. DNS子域授权与转发配置

    正向区域SUB_ZONE_NAME IN NS NSSERVER_SUB_ZONE_NAME NSSERVER_SUB_ZONE_NAME IN A IP .com xingxing.com. xin ...

  6. mongoDb(2)聚合

    1.mongodb的聚合是有专门的一个方法的.

  7. Spring+Mybatis+Maven+MySql搭建实例

    林炳文Evankaka原创作品.转载请注明出处http://blog.csdn.net/evankaka 摘要:本文主要讲了如何使用Maven来搭建Spring+Mybatis+MySql的的搭建实例 ...

  8. Mac原生双拼布局

    先上图: 来自苹果官方网站:Chinese Input Method: 使用简体拼音输入源 下面仅列出与自然码方案不同的地方.相同的不再罗列.后面括号内红色的为自然码双拼布局对应的按键.单韵母使用o开 ...

  9. javascript的类、委托、事件

    javascript中的类: javascript中的类 );         p2.show();                  //注:Javascript中没有真正的方法重载 看起来很简单吧 ...

  10. CSS 笔记六(Image/Attribute Selectors)

    Image Opacity / Transparency The CSS opacity property is a part of the CSS3 recommendation. Example ...