zoukankan      html  css  js  c++  java
  • JSON stringify and parse

    来源 : http://javascript.ruanyifeng.com/stdlib/date.html

        //解析json也可以传入一个方法, 基本上和stringify差不多,不过是逆序的, 要注意key = "" 的return ,基本上返回 value就好
        //自己做一个test比较好理解
        function f(key, value) {
            //console.log(key);
            //console.log(value);
            if (key === "") {
                return value;
            }
            return {
                age: 12
            };
        }
        var o1 = {
            name: "keatkeat",
            array: ["a", "b"]
        }
        var o = JSON.parse(JSON.stringify(o1), f);
        console.log(o);
    
              
        //第2个参数数组的话,可以针对obj 过滤出我们指定想要的属性
        //第2参数是函数的话,会梯归执行坎套的对象和数组,返回undefined的话这个属性将被忽略
        //这个 key value 循环包括 对象(key="",value=object),数组(key="",value=array),对象内的每一个属性(key=attr,value=value),数组中的每一个值(key=0, value=value)
        //return 的value 将继续被梯归下去,比如你把一个string 变成 return一个对象,它也会梯归处理这个对象 (所以要注意循环引用)
        //如果处理的是一个对象而且它拥有 toJSON 这个方法的话,那么将会调用它来获取return value (比如js Date就带有这个方法)
        //自己做一个test就容易理解了。 
    
        //第3个参数可以做美美的JSON 
        JSON.stringify(obj, function (key, value) {
            console.log(key);
            console.log(value);
            //自定义处理的话,要顾虑到这个哦
            if (value.toJSON) {
                return value.toJSON();
            }
            return value;
        }, " ");
        JSON.stringify(obj, ["onlyThisAttrWant"], " ");
  • 相关阅读:
    GIT和SVN之间的五个基本区别
    nolock的使用
    Net线程足迹 传递参数至线程
    .NET中的三种Timer的区别和用法(转)
    探索并发编程(六)------Java多线程性能优化
    探索并发编程(七)------分布式环境中并发问题
    Lock与synchronized 的区别
    常用EXE文件反编译工具
    Socket原理
    开源的力量(随时更新)
  • 原文地址:https://www.cnblogs.com/keatkeat/p/4117430.html
Copyright © 2011-2022 走看看