如何在 JavaScript 中将地图转换为 JSON

在 JavaScript 中将地图转换为 JSON

How to Convert a Map to JSON in JavaScript

要将 a 转换Map为 JSON:

  1. 使用Object.fromEntries()方法将 转换Map为对象。
  2. 将对象传递给JSON.stringify()方法。
  3. JSON.stringify()方法将传入的值转换为 JSON 字符串。
索引.js
const map = new Map([ ['name', 'Tom'], ['country', 'Chile'], ]); // ✅ Convert to JSON string const json = JSON.stringify(Object.fromEntries(map)); // 👇️ '{"name": "Tom", "country": "Chile"}' console.log(json);

我们使用
Object.fromEntries
方法将 a 转换
Map为对象。

索引.js
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 字符串转换回 a Map,您必须:

  1. 使用JSON.parse方法将 JSON 字符串解析为对象。
  2. 使用该Object.entries方法获取键值对数组。
  3. Map()使用键值对数组调用构造函数。
索引.js
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方法接受一个对象并返回一个二维数组。

索引.js
// 👇️ [['name', 'Tom'], ['country', 'Chile']] console.log(Object.entries({name: 'Tom', country: 'Chile'}));

Map()
构造函数需要一个其元素是键值对的可迭代对象,因此我们可以直接将调用该方法的结果传递给

Object.entries

为了避免Map对象不具有对序列化或解析的本机支持这一事实,我们将 转换Map为一个对象并序列化该对象。

进一步阅读

发表评论