• 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"}
  • 相关阅读:
    编译原理-词法分析01-扫描程序
    编译原理-概论-02
    编译原理-概论-01
    web api :Action Results in Web API 2
    git 学习笔记7--branch
    git 学习笔记6--remote & log
    杭电acm 1230 火星a+b(进制)
    杭电acm 1214 圆桌会议(冒泡排序)
    杭电acm 1210 Eddy's 洗牌问题
    杭电acm 1207 汉诺塔II
  • 原文地址:https://www.cnblogs.com/MirageFox/p/5863358.html
Copyright © 2020-2023  润新知