美文网首页
谈谈JSON.stringify第二个参数和第三个参数的用法

谈谈JSON.stringify第二个参数和第三个参数的用法

作者: zhao_ran | 来源:发表于2021-03-04 15:53 被阅读0次

本文主要介绍一个小的知识点,可能不少同学忽略了,或者不清楚,普及一下。就是我们最常用的JSON.stringify,我们用这个参数,通常是在序列化和反序列化的时候使用,有时候也在简单的,非函数的深copy的时候使用。但是不知道其有第二个和第三个参数。

文档属性

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

参数说明:

value:
必需, 要转换的 JavaScript 值(通常为对象或数组)。

replacer:
可选。用于转换结果的函数或数组。

如果 replacer 为函数,则 JSON.stringify 将调用该函数,并传入每个成员的键和值。使用返回值而不是原始值。如果此函数返回 undefined,则排除成员。根对象的键是一个空字符串:""。

如果 replacer 是一个数组,则仅转换该数组中具有键值的成员。成员的转换顺序与键在数组中的顺序一样。

space:
可选,文本添加缩进、空格和换行符,如果 space 是一个数字,则返回值文本在每个级别缩进指定数目的空格,如果 space 大于 10,则文本缩进 10 个空格。space 也可以使用非数字,如:\t。

第二个参数用法

第二个参数用法很简单,只不过很多朋友不知道这个知识点,这个用法在提交后端数据的时候,非常实用。

例如:后端需要前端为null或者undefined的时候,字段也不要传入。那么我们就会用到了第二个参数的函数了。用法如下:

//前端传入后端参数数据:
var params = {"name":"haorooms", "site":"http://www.haorooms.com",text:'',data:undefined,age:null,child:''}

JSON.stringify(params, (key, value) =>{
    if(value){
       return value
     } else {
       return undefined
   }
})

// 返回的是:"{"name":"haorooms","site":"http://www.haorooms.com"}",然后再JSON.parse一下就可以了

上面的用法是用到了函数,还可以是数组,数组就比较好理解了,代表的是返回固定哪几个?

例如如下:

var params = {"name":"haorooms", "site":"http://www.haorooms.com",text:'',data:undefined,age:null,child:''}

    JSON.stringify(params, ["name"])

// 输出:"{"name":"haorooms"}"

第三个参数用法

第三个参数通常是用于格式化,例如我么打印一段格式化的字符串

var params = {"name":"haorooms", "site":"http://www.haorooms.com",text:'',data:undefined,age:null,child:''}

    JSON.stringify(params, null,'\t')

"{
    "name": "haorooms",
    "site": "http://www.haorooms.com",
    "text": "",
    "age": null,
    "child": ""
}"

这样就可以格式化输出了。

相关文章

  • 谈谈JSON.stringify第二个参数和第三个参数的用法

    本文主要介绍一个小的知识点,可能不少同学忽略了,或者不清楚,普及一下。就是我们最常用的JSON.stringify...

  • js笔记2

    问:说下JSON.stringify三个参数的用法 答: console.log(JSON.stringify({...

  • 你所不知道的JSON.stringify

    译者按: 老司机们,你知道JSON.stringify还有第二个和第三个可选参数吗?它们是什么呢? 原文: Wha...

  • 封装 Toast

    Toast 是一个弹出的通知,用法很简单,代码如下: 第一个参数是上下文,第二个参数是具体的通知内容,第三个参数是...

  • 如何在浏览器控制台(console)里输出彩色样式调试信息

    这里的用法很像C语言里格式化字符串输出的printf函数,log的第一个参数声明第二、第三个参数的作用,第二个参数...

  • delete post put get请求参数

    delete请求携带body post和put的第二个参数直接为data,第三个参数为config,但是delet...

  • Android ListView

    ArrayAdapter ArrayAdapter第一个参数上下文,第二个参数layout, 第三个参数显示的数...

  • render函数的学习:

    render函数的第一个参数: render的第二个参数: render函数的第三个参数: this.$slots...

  • C指针基础之函数

    这篇文章我们来谈谈指针在函数中的用法,即作为参数和作为返回值的用法。 指针作为参数 下面我们以一个比较经典的例子来...

  • 整理下Object.defineProperty - 2018

    2018-06-28 创建 参数 第一个参数:目标对象 第二个参数:需要定义的属性或方法的名字。 第三个参数:目标...

网友评论

      本文标题:谈谈JSON.stringify第二个参数和第三个参数的用法

      本文链接:https://www.haomeiwen.com/subject/gjskqltx.html