JavaScript 中如何将 Map 转换为 JSON
要将 Map
转换为 JSON
:
-
使用
Object.fromEntries()
方法将 Map 转换为对象。 -
将对象传递给
JSON.stringify()
方法。 -
JSON.stringify()
方法将传入的值转换为 JSON 字符串。
const map = new Map([
['name', 'Tom'],
['country', 'Chile'],
]);
// ✅ 转换为JSON字符串
const json = JSON.stringify(Object.fromEntries(map));
// 👇️ '{"name": "Tom", "country": "Chile"}'
console.log(json);
我们使用 Object.fromEntries
方法将 Map 转换为对象。
const map = new Map([
['name', 'Tom'],
['country', 'Chile'],
]);
const obj = Object.fromEntries(map);
console.log(obj) // 👉️ {name: 'Tom', country: 'Chile'}
我们必须这样做,因为 Map 对象没有对序列化或解析的本机支持。
下一步是将对象传递给 JSON.stringify
方法。
JSON.stringify
方法将对象转换为 JSON 字符串并返回结果。
如果需要将 JSON 字符串转换回 Map,则必须:
-
使用
JSON.parse
方法将 JSON 字符串解析为对象。 -
使用
Object.entries
方法获取键值对数组。 -
使用键值对数组调用
Map()
构造函数。
const map = new Map([
['name', 'Tom'],
['country', 'Chile'],
]);
const json = JSON.stringify(Object.fromEntries(map));
const obj = JSON.parse(json);
const mapAgain = new Map(Object.entries(obj));
console.log(mapAgain); // 👉️ {'name' => 'Tom', 'country' => 'Chile'}
Object.entries
方法接受一个对象并返回一个二维数组。
// 👇️ [['name', 'Tom'], ['country', 'Chile']]
console.log(Object.entries({name: 'Tom', country: 'Chile'}));
Map()
构造函数需要一个迭代,其元素是键值对,因此我们可以直接将调用 Object.entries
方法的结果传递给它。
为了避免
Map
对象本身不支持序列化或解析这一事实,我们将Map
转换为对象并序列化该对象。
相关文章
Do you understand JavaScript closures?
发布时间:2025/02/21 浏览次数:108 分类:JavaScript
-
The function of a closure can be inferred from its name, suggesting that it is related to the concept of scope. A closure itself is a core concept in JavaScript, and being a core concept, it is naturally also a difficult one.
Do you know about the hidden traps in variables in JavaScript?
发布时间:2025/02/21 浏览次数:178 分类:JavaScript
-
Whether you're just starting to learn JavaScript or have been using it for a long time, I believe you'll encounter some traps related to JavaScript variable scope. The goal is to identify these traps before you fall into them, in order to av
How much do you know about the Prototype Chain?
发布时间:2025/02/21 浏览次数:150 分类:JavaScript
-
The prototype chain can be considered one of the core features of JavaScript, and certainly one of its more challenging aspects. If you've learned other object-oriented programming languages, you may find it somewhat confusing when you start
如何在 JavaScript 中合并两个数组而不出现重复的情况
发布时间:2024/03/23 浏览次数:86 分类:JavaScript
-
本教程介绍了如何在 JavaScript 中合并两个数组,以及如何删除任何重复的数组。