HarmonyOS 鸿蒙Next中map与字符串转换

HarmonyOS 鸿蒙Next中map与字符串转换

/**

  • 将map对象转换为字符串
  • @param map map数据
  • @returns 字符串 */ static mapToString(map: Map<string, Object>): string { if (map == undefined || map == null) { return ‘’ } let jsonObject: Record<string, Object> = {} map?.forEach((value, key) => { if (key !== undefined && value !== undefined) { jsonObject[key] = value } }) return JSON.stringify(jsonObject) }

/**

  • 将字符串转换为Map
  • @param jsonStr json字符串
  • @returns Map数据 */ static jsonParseMap(jsonStr: string): Map<string, object> { let newMap: Map<string, object> = new Map<string, object>() try { let jsonObj: Object | null = JSON.parse(jsonStr) if (jsonObj != null) { newMap = new Map<string, object>(Object.entries(jsonObj)) } } catch (err) { hilog.error(0x0000, “MapUtil”, 'err = ’ + err) } return newMap }

更多关于HarmonyOS 鸿蒙Next中map与字符串转换的实战教程也可以访问 https://www.itying.com/category-93-b0.html

2 回复

在HarmonyOS鸿蒙Next中,使用util模块的Base64类可实现字符串与字节数组互转。Map转字符串用JSON.stringify(),字符串转Map用JSON.parse()。示例如下:

import util from '@ohos.util';

// Map转字符串
let map = new Map();
map.set('key', 'value');
let jsonStr = JSON.stringify(Array.from(map));

// 字符串转Map
let newMap = new Map(JSON.parse(jsonStr));

// Base64编码解码
let base64 = new util.Base64();
let encoded = base64.encodeToString(new TextEncoder().encode(jsonStr));
let decoded = new TextDecoder().decode(base64.decode(encoded));

更多关于HarmonyOS 鸿蒙Next中map与字符串转换的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS Next中,Map与字符串的转换实现是合理的。对于mapToString方法,通过将Map转换为Record对象再JSON序列化的方式简洁高效,注意处理了null/undefined情况。jsonParseMap方法使用Object.entries将解析后的JSON对象转为Map也很规范,try-catch处理JSON.parse异常是必要的。两个方法都遵循了TypeScript类型约束,代码健壮性良好。这种实现方式在ArkTS中同样适用,是标准的Map与JSON字符串互转方案。

回到顶部