6

谈谈JSON.stringify第二个参数和第三个参数的用法【视频】

 3 years ago
source link: https://www.haorooms.com/post/jsonstringify23
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

谈谈JSON.stringify第二个参数和第三个参数的用法【视频】

2021年1月9日 396次浏览

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

文档属性普及

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

参数说明:

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

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

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

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

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

第二个参数用法

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

例如:后端需要前端为空或者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": ""
}"

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

怎么样,小技巧get了吗?

B站视频如下

希望点赞和投币啊!

相关文章:

  • 亲,未找到相关文章哦!

About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK