一般大家使用JSON.stringfy()只用到了第一个参数,把对象转成json格式
但是JSON.stringfy()还有后面的两个参数:JSON.stringfy(value, replacer, space)
value:要转化的对象
replacer:传函数-->被序列化的值的每个属性都会经过该函数的转换和处理
传数组-->在这个数组中的属性名才会被序列化到最终的 JSON 字符串中
传null或者不传-->对象所有的属性都会被序列化
var obj = { name: "lili", money: 17025, sex: "女" } // 不转money值,并且在sex值加上“性别”二字 JSON.stringify(obj,(key,value) => { if (key === "money") { return undefined; } if (key === "sex") { return "性别:"+value } return value }) // '{"name":"lili","sex":"性别:女"}'
space:传数字-->则在字符串化时每一级别会比上一级别缩进多这个数字值的空格(最多 10 个空格)
传字符串-->则每一级别会比上一级别多缩进该字符串(或该字符串的前 10 个字符)
toJSON方法:
如果要转化的对象拥有 toJSON 方法,那么toJSON方法就会覆盖该对象默认的序列化行为:不是该对象被序列化,而是调用 toJSON方法后的返回值会被序列化
直接看例子吧:
var obj = { name: 'lili', toJSON: function () { return 'lalala'; } }; JSON.stringify(obj); // '"lalala"' JSON.stringify({test: obj}); // '{"test":"lalala"}'
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· AI技术革命,工作效率10个最佳AI工具