JSON.stringify() 的使用

 我来答
白露饮尘霜17
2022-08-01 · TA获得超过1.2万个赞
知道大有可为答主
回答量:6782
采纳率:100%
帮助的人:37.3万
展开全部

复制粘贴一下 JSON.stringify() 三个参数的含义:

返回值: 返回包含 JSON 文本的字符串。
从上面的参数说明中可以看到,第二个参数可以是一个函数或者数组,这给了我们很大的发挥空间。

stringify() 的第一个和第三个参数都好理解,所以下面主要说的是第二个参数。

当第二个参数为数组时,可作为条件筛选使用。
例如有如下对象:

如果我们只需要 name 属性,则可以这样:

这个特性只对对象的根属性生效,例如:

即使第二层上也有name属性,但在筛选时并不会选中。
当对一个数组进行转换时,会筛选数组第一层的每个值,例如:

基本上数组的用法就是如此了。

函数的发挥空间是很大的,理所当然地用法也就比较多了。
当第二个参数为函数时,stringify() 会给函数传递两个参数,参数值为每一个成员的键和值。但跟数组参数不同的是,函数会处理所有层级上的每一个成员。
例如:

所有符合条件的内容都被修改了(注意『小红』是『小刚』的下一层)。
正是因为函数的这个特性,我们可以很方便地实现一些可能比较麻烦的功能。
比如上面的例子,如果不使用 stringify() 方法而想要修改所有层级上的age属性的值,就需要需要进行深循环。

上面的例子中,如果想要复制一份arr的数据,通常是进行深拷贝,但其实也可以使用stringify(),只需要配合 JSON.parse() 即可:

stringify() 不能处理值为函数的成员,当某个成员的值为函数时,在转换过程中会被自动排除,例如:

同样的,JSON.parse() 方法是不能处理函数格式的字符串的。

已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式