如何在 JavaScript 中将集合set转换为 JSON

要将集合转换为 JSON,请将 Set 转换为数组并将结果传递给 JSON.stringify() 方法,例如 JSON.stringify(Array.from(set))。 JSON.stringify 方法将传入的值转换为 JSON 字符串并返回结果。

const set1 = new Set(['a', 'b', 'c']);

// ✅ 使用 Array.from
const json1 = JSON.stringify(Array.from(set1));
console.log(json1); // 👉️ '["a", "b", "c"]'

// ✅ 使用扩展语法 (...)
const json2 = JSON.stringify([...set1]);
console.log(json2); // 👉️ '["a", "b", "c"]'

如何在 JavaScript 中将集合set转换为 JSON

我们使用 Array.from 方法将 Set 转换为数组。

该方法接受一个可迭代对象并将其转换为数组。

const set1 = new Set(['a', 'b', 'c']);

console.log(Array.from(set1)); // 👉️ ['a', 'b', 'c']

我们必须将 Set 转换为数组,因为 Set 对象没有对序列化或解析的本机支持。

最后一步是使用 JSON.stringify 方法将数组转换为 JSON 字符串。

使用 Array.from 方法的替代方法是使用扩展语法 …。

const set1 = new Set(['a', 'b', 'c']);

const json2 = JSON.stringify([...set1]);
console.log(json2); // 👉️ '["a", "b", "c"]'

在此示例中,我们使用扩展语法 … 将集合中的值解包到一个数组中。

这等效于使用 Array.from 方法,但是在某些情况下,展开语法 … 不能很好地与 TypeScript 配合使用。

如果需要将 JSON 字符串转换为 Set,则必须:

  1. 使用 JSON.parse() 方法将 JSON 字符串解析为数组。
  2. 将数组传递给 Set() 构造函数
const set1 = new Set(['a', 'b', 'c']);

const json1 = JSON.stringify(Array.from(set1));
console.log(json1); // 👉️ '["a", "b", "c"]'

// ✅ 转换回集合 set
const parsed = new Set(JSON.parse(json1));
console.log(parsed); // 👉️ {'a', 'b', 'c'}

如何在 JavaScript 中将集合set转换为 JSON

Set 构造函数将一个可迭代对象(例如数组)作为参数,因此我们可以将调用 JSON.parse 方法的结果传递给它。