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

12,850次阅读
没有评论

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

前言

本文主要介绍一个小的知识点,可能不少同学忽略了,或者不清楚,普及一下。就是我们最常用的 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 站视频如下

希望点赞和投币啊!

    正文完
     0
    Yojack
    版权声明:本篇文章由 Yojack 于1970-01-01发表,共计1378字。
    转载说明:
    1 本网站名称:优杰开发笔记
    2 本站永久网址:https://yojack.cn
    3 本网站的文章部分内容可能来源于网络,仅供大家学习与参考,如有侵权,请联系站长进行删除处理。
    4 本站一切资源不代表本站立场,并不代表本站赞同其观点和对其真实性负责。
    5 本站所有内容均可转载及分享, 但请注明出处
    6 我们始终尊重原创作者的版权,所有文章在发布时,均尽可能注明出处与作者。
    7 站长邮箱:laylwenl@gmail.com
    评论(没有评论)