• 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"}
  • 相关阅读:
    Mybatis如何插入空字段
    为什么要将action实例设置为多例
    hibernate dynamic-update="true"属性不起作用原因(转载)
    查找到匹配的进程并关闭 linux ps -ef
    Mac 下解决修改IntelliJ IDEA 由于修改配置之后无法启动问题
    再聊移动端页面的适配
    重学前端
    前端面试
    使用Flexible实现手淘H5页面的终端适配
    vue-cli3.0 使用px2rem 或 postcss-plugin-px2rem
  • 原文地址:https://www.cnblogs.com/MirageFox/p/5863358.html
Copyright © 2020-2023  润新知