首页 > 代码库 > js之oop <五>对象序列化
js之oop <五>对象序列化
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 <五>对象序列化
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。