网站首页 > java教程 正文
前言
作为一名前端开发者(本人业余前端,前些年搞过一段时间的全栈),你可能熟悉JSON.stringify()方法,通常用于调试。但是很多只是简单使用一下接下来,让我们深入了解其实用性。
考虑一个对象如果想把她转成字符串打印出来:
const obj = { name: 'San Shang You Ya', age: 18 }; console.log(obj.toString()); // Result: [object Object] |
如果你想这样打印你所看到的只能是 [object Object]
我们可以借助JSON.stringify()方法
const obj = { name: 'San Shang You Ya', age: 18 }; console.log(JSON.stringify(obj)); // Result: {"name":"San Shang You Ya","age":18} |
大多数开发者直接使用 JSON.stringify(),但我即将揭示一些隐藏的技巧。
第二个参数(Array)
JSON.stringify() 接受第二个参数,它是一个你想在控制台中显示的对象的键的数组。例如:
const obj = { name: 'San Shang You Ya', age: 18 }; console.log(JSON.stringify(obj, ['name'])); // Result: {"name": "San Shang You Ya"} |
这样而不是将整个 JSON 对象混乱地显示在控制台中,可以通过将所需的键作为数组传递给第二个参数来选择性地打印。
第二个参数(Function)
- 第二个参数也可以是一个函数,根据函数内的逻辑输出键值对。
- 如果返回 undefined,则该键值对将不会被打印出来。
const obj = { name: 'San Shang You Ya', age: 18 }; console.log(JSON.stringify(obj, (key, value) => (key === "age" ? value : undefined))); // Result: {"age": 18} |
第三个参数作为数字
- 第三个参数控制最终字符串中的间距。如果是一个数字,字符串化的每个级别将相应缩进。
const obj = { name: 'San Shang You Ya', age: 18 }; console.log(JSON.stringify(obj, null, 2)); |
第三个参数作为字符串
如果第三个参数是一个字符串,它将替换为空格字符
toJSON 方法
对象可以拥有一个 toJSON 方法。 JSON.stringify() 返回该方法的结果,并对其进行字符串化,而不是转换整个对象。
const superhero= { firstName: "San Shang", lastName: "You Ya", age: 21, toJSON() { return { fullName: `${this.firstName} + ${this.lastName}` }; } }; console.log(JSON.stringify(superhero)); // Result: "{ "fullName" : "San Shang You Ya"}" |
猜你喜欢
- 2025-08-31 学会用Go解析复杂JSON的思路_gson解析复杂json
- 2025-08-31 JWT(JSON Web Token) 快速入门_json web token原理
- 2025-08-31 接口自动化测试之JSON Schema模式该如何使用?
- 2025-08-31 Spring Boot程序中@JsonIgnoreProperties与@JsonIgnore基本使用
- 2025-08-31 fastjson自定义序列化竟然有这么多姿势?
- 2025-08-31 图解 Redis String 底层数据结构 SDS 与计数器实战
- 2025-08-31 完全零基础入门Fastjson系列漏洞_fastjson反序列化漏洞 工具
- 2025-08-31 爆肝整理!Python JSON 模块实战手册:从入门到性能封神
- 2025-08-31 Hutool JSONUtil巧妙过滤null值:JSON转Map数据清洗的终极方案
- 2025-08-31 js中的JSON.stringify()方法的用法
你 发表评论:
欢迎- 最近发表
- 标签列表
-
- java反编译工具 (77)
- java反射 (57)
- java接口 (61)
- java随机数 (63)
- java7下载 (59)
- java数据结构 (61)
- java 三目运算符 (65)
- java对象转map (63)
- Java继承 (69)
- java字符串替换 (60)
- 快速排序java (59)
- java并发编程 (58)
- java api文档 (60)
- centos安装java (57)
- java调用webservice接口 (61)
- java深拷贝 (61)
- 工厂模式java (59)
- java代理模式 (59)
- java.lang (57)
- java连接mysql数据库 (67)
- java重载 (68)
- java 循环语句 (66)
- java反序列化 (58)
- java时间函数 (60)
- java是值传递还是引用传递 (62)
本文暂时没有评论,来添加一个吧(●'◡'●)