string转map_string转map_string转map

在 JavaScript 中将 JSON 转换为 Map:

使用 JSON.parse() 方法将 JSON 字符串解析为对象。将此对象作为参数调用 Object.entries()。将 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);

本网站每日更新互联网创业教程,一年会员只需98,全站资源免费下载点击查看会员权益

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注