在 JavaScript 中将集合转换为 JSON
How to convert a Set to JSON in JavaScript
要将 a 转换Set
为 JSON,请将其转换Set
为数组并将结果传递给JSON.stringify()
方法,例如JSON.stringify(Array.from(set))
. 该
JSON.stringify
方法将传入的值转换为 JSON 字符串并返回结果。
索引.js
const set1 = new Set(['a', 'b', 'c']); // ✅ Using Array.from const json1 = JSON.stringify(Array.from(set1)); console.log(json1); // 👉️ '["a", "b", "c"]' // ✅ Using spread syntax (...) const json2 = JSON.stringify([...set1]); console.log(json2); // 👉️ '["a", "b", "c"]'
我们使用
Array.from
方法将 a 转换Set
为数组。
该方法采用可迭代对象并将其转换为数组。
索引.js
const set1 = new Set(['a', 'b', 'c']); console.log(Array.from(set1)); // 👉️ ['a', 'b', 'c']
我们必须将 转换
Set
为数组,因为Set
对象本身不支持序列化或解析。最后一步是使用
JSON.stringify
方法将数组转换为 JSON 字符串。
使用该方法的另一种Array.from
方法是使用
扩展语法 (…)。
索引.js
const set1 = new Set(['a', 'b', 'c']); const json2 = JSON.stringify([...set1]); console.log(json2); // 👉️ '["a", "b", "c"]'
在此示例中,我们使用展开语法 (…) 将值从 中解包
Set
到一个数组中。
这等同于使用该
Array.from
方法,但在某些情况下,扩展语法 (…) 不能很好地与 TypeScript 配合使用。如果需要将 JSON 字符串转换为Set
,则必须:
- 使用该
JSON.parse()
方法将 JSON 字符串解析为数组。 - 将数组传递给
Set()
构造函数
索引.js
const set1 = new Set(['a', 'b', 'c']); const json1 = JSON.stringify(Array.from(set1)); console.log(json1); // 👉️ '["a", "b", "c"]' // ✅ Parse back to Set const parsed = new Set(JSON.parse(json1)); console.log(parsed); // 👉️ {'a', 'b', 'c'}
构造Set
函数将一个可迭代对象(例如数组)作为参数,因此我们可以将调用该JSON.parse
方法的结果传递给它。