zoukankan      html  css  js  c++  java
  • JSON.stringify()的不常见用法

    1.JSON.stringify()只序列化可遍历属性(enumerable=true)

    var obj = {};
    Object.defineProperties(obj, {
      'foo': {
        value: 1,
        enumerable: true
      },
      'bar': {
        value: 2,
        enumerable: false
      }
    });
    
    JSON.stringify(obj); // "{"foo":1}"

    2. JSON.stringify(obj, fn|arr);

       1)当第二个参数为数组时,表示需要被序列化的对象的属性列表;

       2)当第二个参数为方法时,function(key, value){}表示每个属性对应的key-value值,最终的返回值可以用来改变原来的结果。

        该方法可以用来在序列化之前改变对象的内容。

    var o = {a: {b: 1}};
    
    function f(key, value) {
      console.log("["+ key +"]:" + value);
      return value;
    }
    
    JSON.stringify(o, f)
    // []:[object Object]
    // [a]:[object Object]
    // [b]:1
    // '{"a":{"b":1}}'
    
    // 递归处理,每次处理上次的返回结果

    3. JSON.stringify(obj,null,number|string)

      可以接受第三个参数,这个可以用来按格式打印对象

      1)当第三个参数为数值时,表示每个属性前的空格数(<10)

    console.log(JSON.stringify({a:{b:1}},null,2))
    {
      "a": {
        "b": 1
      }
    }

    2)当第三个参数为字符串时,表示在每个属性前添加该字符串(<10)

    console.log(JSON.stringify({a:{b:1}},null,"==="))
    {
    ==="a": {
    ======"b": 1
    ===}
    }
  • 相关阅读:
    Try .NET & Github Gist
    vue & font-awesome
    JSP基础与提高(一).md
    chm转换为html文件
    markdownpad生成目录
    MarkdownPad2的密钥
    删除多余的win10软件
    计算机组成原理与机构期末复习的概念
    sublime text 的小细节设置,让你的代码更优美
    NetBeans主题配色方案加设置.md
  • 原文地址:https://www.cnblogs.com/lyraLee/p/10609895.html
Copyright © 2011-2022 走看看