参考语法

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);