如何在 JavaScript 中将 Set 转换为 JSON

在 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,则必须:

  1. 使用该JSON.parse()方法将 JSON 字符串解析为数组。
  2. 将数组传递给
    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方法的结果传递给它。