JSON.stringify()方法
JSON.stringify()方法用于将一个值转为JSON字符串,该字符串符合JSON格式,并且可以被JSON.parse()方法还原
一、使用JSON.stringify()方法返回的效果,以及需要注意的地方
例如:
!!!!!!原始类型的字符串,转换之后会带双引号
注意:
看到这个表达式,第一反应应该是true,结果是false
分开打印看下效果就一目了然,这是因为内层的双引号可以让引擎知道,这是个字符串,
如果内层没有双引号,在还原时,Javascript引擎就无法知道是原始值是字符串还是布尔值
上面代码中,字符串foo
,被转成了"\"foo\""
二、注意
数组成员是undefined、函数或者XML对象,都会被转成null
上面代码中,对象obj的a属性是undefined,b是一个函数,转变之后都会被过滤掉
如果是正则对象,会被转成空对象(文章最后有解决方法)
JSON.stringify()方法会忽略对象的不可遍历属性
所以,当你使用JSON.stringify()方法时遇到一些问题,综合上面的情况,也许可以更快解决
三、JSON.stringify()方法第二个参数
1.可以接受一个数组作为第二个参数,指定参数对象的那些属性需要转成字符串(数组无效)
2.第二个参数还可以是一个函数,(函数不能是undefined,否则会被忽略)
四、第三个参数
JSON.stringify()
还可以接受第三个参数,用于增加返回的 JSON 字符串的可读性。
默认返回的是单行字符串,对于大型的 JSON 对象,可读性非常差。第三个参数使得每个属性单独占据一行,并且将每个属性前面添加指定的前缀(不超过10个字符)。
如果第三个参数是数字,那就是每个属性前面添加的空格
五、参数的toJSON()方法
如果参数对象有自定义的toJSON()
方法,那么JSON.stringify()
会使用这个方法的返回值作为参数,而忽略原对象的其他属性。
Date对象就有一个自己的toJSON()方法
toJSON()
方法的一个应用是,将正则对象自动转为字符串。因为JSON.stringify()
默认不能转换正则对象,但是设置了toJSON()
方法以后,就可以转换正则对象了。
本文来自博客园,作者:danmo_xx,转载请注明原文链接:https://www.cnblogs.com/xx321/p/15624051.html
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
· 无需6万激活码!GitHub神秘组织3小时极速复刻Manus,手把手教你使用OpenManus搭建本
· Manus爆火,是硬核还是营销?
· 终于写完轮子一部分:tcp代理 了,记录一下
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通