关于前端:JavaScript-JSONstringify-有趣的部分

8次阅读

共计 993 个字符,预计需要花费 3 分钟才能阅读完成。

参考语法

JSON.stringify(value[, replacer [, space]])

个别在应用 JSON.stringify 常见有三种情景

  • 仅仅转换成字符串

    var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}]
    var jsonstr = JSON.stringify(arr);
    console.log(jsonstr);

这种简略不便,然而一点都不难看,所以咱们能够持续改良下

  • 增加字符

    var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}]
    var jsonstr = JSON.stringify(arr, null," ");
    console.log(jsonstr);

其实很简略,就是在第三个参数里增加了一个空格,当然你也能够增加 \n or \t 这样的特殊字符

  • 过滤数据,批改 replacer 参数

    var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}]
    
    var jsonstr = JSON.stringify(arr, ["age"]," ");
    console.log(jsonstr);

其实还能够解决一个问题,JSON.stringify在转换字符串的时候默认是不会转换 function
所以能够传递第二个参数批改下。其实想过滤数据也是能够在 replacer 办法里实现,当你返回的是对象或数组,都会被序列化。所以能够判断 value 的类型是否返回就 ok 了

    function replacer(key, value) {if(typeof value ==="function"){return String(value);
        }
        return value;
      }

var arr = [{"name":"张三", "age":99, "address":"武汉犄角旮旯里", fun:function(){console.log("我就是一个正文")}}]

var jsonstr = JSON.stringify(arr, replacer," ");
console.log(jsonstr);

正文完
 0