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与字符串转换的方法可以优化如下:

  1. Map转字符串:
static mapToString(map: Map<string, Object>): string {
    return map ? JSON.stringify(Object.fromEntries(map)) : '';
}
  1. 字符串转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();
    }
}

优化点说明:

  1. 使用Object.fromEntries()简化Map转Object的过程
  2. 使用Object.entries()简化Object转Map的过程
  3. 移除多余的null/undefined检查,使用更简洁的条件判断
  4. 错误处理保持简单直接

这些方法在HarmonyOS Next中完全兼容,能正确处理Map与JSON字符串的相互转换。注意Map中的值必须是可JSON序列化的类型。

回到顶部