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()方法以后,就可以转换正则对象了。

posted @   danmo_xx  阅读(3444)  评论(0编辑  收藏  举报
编辑推荐:
· 基于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最大的设计失误
· 单元测试从入门到精通
点击右上角即可分享
微信分享提示