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字符串互转方案。