HarmonyOS鸿蒙Next中map转字符串,字符串转map方法
HarmonyOS鸿蒙Next中map转字符串,字符串转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转字符串,字符串转map方法的实战教程也可以访问 https://www.itying.com/category-93-b0.html
2 回复
在HarmonyOS鸿蒙Next中:
Map转字符串:
使用JSON.stringify()
方法:
let map = new Map();
map.set('key1', 'value1');
let str = JSON.stringify(Array.from(map));
字符串转Map:
使用JSON.parse()
和Map
构造函数:
let str = '[["key1","value1"]]';
let map = new Map(JSON.parse(str));
注意:这种方法适用于简单数据类型,复杂对象需要特殊处理。
更多关于HarmonyOS鸿蒙Next中map转字符串,字符串转map方法的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html
在HarmonyOS Next中,处理Map与字符串转换的方法可以优化如下:
- Map转字符串:
static mapToString(map: Map<string, Object>): string {
return map ? JSON.stringify(Object.fromEntries(map)) : '';
}
- 字符串转Map:
static jsonParseMap(jsonStr: string): Map<string, object> {
try {
const obj = JSON.parse(jsonStr);
return obj ? new Map(Object.entries(obj)) : new Map();
} catch (err) {
console.error('JSON parse error:', err);
return new Map();
}
}
优化点说明:
- 使用Object.fromEntries()简化Map转Object的过程
- 使用Object.entries()简化Object转Map的过程
- 移除多余的null/undefined检查,使用更简洁的条件判断
- 错误处理保持简单直接
这些方法在HarmonyOS Next中完全兼容,能正确处理Map与JSON字符串的相互转换。注意Map中的值必须是可JSON序列化的类型。