领先的免费Web技术教程,涵盖HTML到ASP.NET

网站首页 > 知识剖析 正文

七爪源码:如何在 JavaScript 中将 JSON 转换为地图

nixiaole 2024-11-14 18:38:17 知识剖析 30 ℃

在 JavaScript 中将 JSON 转换为 Map:

  1. 使用 JSON.parse() 方法将 JSON 字符串解析为对象。
  2. 将此对象作为参数调用 Object.entries()。
  3. 将 Object.entries() 的结果传递给 Map() 构造函数。

例如:

const json =
  '{"user1":"John","user2":"Kate","user3":"Peter"}';const map = new Map(Object.entries(JSON.parse(json)));// Map(3) { 'user1' => 'John', 'user2' => 'Kate', 'user3' => 'Peter' }
console.log(map);

我们首先将字符串转换为对象,然后再转换为数组,因为我们无法将 JSON 字符串直接解析为 Map。 Object.entries() 方法接受一个对象并返回一个键值对列表,这些键值对对应于对象每个属性的键和值:

const obj = {
  user1: 'John',
  user2: 'Kate',
  user3: 'Peter',
};const arr = Object.entries(obj);// [ [ 'user1', 'John' ], [ 'user2', 'Kate' ], [ 'user3', 'Peter' ] ]
console.log(arr);

Map() 构造函数可以采用键值对的可迭代对象来创建 Map 元素,因此我们将 Object.entries() 的结果直接传递给它。


将地图转换为 JSON

要将 Map 转换回 JSON 字符串,请使用 Map 作为参数调用 Object.fromEntries() 方法,并将结果传递给 JSON.stringify() 方法:

const json =
  '{"user1":"John","user2":"Kate","user3":"Peter"}';const map = new Map(Object.entries(JSON.parse(json)));const jsonFromMap = JSON.stringify(Object.fromEntries(map));// {"user1":"John","user2":"Kate","user3":"Peter"}
console.log(jsonFromMap);

我们首先使用 Object.fromEntries() 转换 Map,因为我们不能直接将 Map 序列化为 JSON 字符串。 Object.fromEntries() 方法将任何键值对列表转换为对象:

const map = new Map([
  ['user1', 'John'],
  ['user2', 'Kate'],
  ['user3', 'Peter'],
]);const obj = Object.fromEntries(map);// { user1: 'John', user2: 'Kate', user3: 'Peter' }
console.log(obj);

Tags:

最近发表
标签列表