JSON.stringify是我们经常使用的工具函数,第二个可选参数其实也有一些小技巧,本文阐释了可选参数的常见两种使用方式。
数组
使用JSON.stringify()的第二个可选参数,通过传入一个数组来从中抽取特定字段。
实现代码如下:
var person = {"name":"Jim Cowart","location":{"city":{"name":"Chattanooga","population":167674},"state":{"name":"Tennessee","abbreviation":"TN","population":6403000}},"company":"appendTo"}; JSON.stringify(person, ["name", "company"], 4); // ~> "{ // "name": "Jim Cowart", // "company": "appendTo" // }"
函数
另外该参数也可以是一个函数,用于在返回数据之前对其进行操作。 如果要对Set进行字符串化,这将非常方便,例如:
const dude = { name: "Pawel", friends: new Set(["Dan", "Pedro", "Mr Gregory"]) }; const dudeStringified = JSON.stringify(dude, (key, value) => value instanceof Set ? [...value] : value ); console.log(dudeStringified); // ~> {"name":"Pawel","friends":["Dan","Pedro","Mr Gregory"]}