如何将Map/HashMap转为Object对象?

使用object的数据结构自定义http请求的header,但是不支持使用字符串作为object的key;

改为Map对象可以解决key为字符串的问题,但是最终发送请求的时候需要把map转为object;

但是ArkTS不支持调用Object.fromEntries() 把map转为object。

HarmonyOS
2024-05-23 22:15:04
浏览
收藏 0
回答 1
回答 1
按赞同
/
按时间
路易不知第几世

根因:ArkTS限制Object标准库中fromEntries方法使用。

方案一:接口封装在ts文件里作为一个工具类,在ets里使用

// ObjectUtil.ts 
export class ObjectUtil { 
  static ObjectFromEntries(source: Iterable<readonly any[]>): Object { 
    return Object.fromEntries(source) 
  } 
} 
  
// index.ets 
let dataMap = new Map<string, string>() 
  .set("key1", "value1") 
  .set("key2", "value2") 
let result = ObjectUtil.ObjectFromEntries(dataMap.entries())
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
  • 10.
  • 11.
  • 12.

方案二:转为Record对象(Object)

let dataMap = new Map<string, string>() 
  .set("key1", "value1") 
  .set("key2", "value2") 
let result:Record<string, string> = {} 
let stringValue = dataMap.entries() 
  
while (!stringValue.next().done){ 
  result[stringValue.next().value[0]] = stringValue.next().value[1] 
}
  • 1.
  • 2.
  • 3.
  • 4.
  • 5.
  • 6.
  • 7.
  • 8.
  • 9.
分享
微博
QQ
微信
回复
2024-05-24 22:06:04
相关问题
如何将JSON字符串转为Map
1008浏览 • 1回复 待解决
如何将js传的map转成c++的对象
1337浏览 • 1回复 待解决
ets中如何将图片转为byte[]?
4245浏览 • 1回复 待解决
HarmonyOS 如何将HashMap转换为Json string?
1479浏览 • 1回复 待解决
如何将对象转为JSON字符串?
1353浏览 • 1回复 待解决
HarmonyOS 如何将文件流转为base64
1166浏览 • 1回复 待解决
HarmonyOS 如何将Uint8Array转为ArrayBuffer
630浏览 • 1回复 待解决
如何将字符串转为Uint8Array?
1849浏览 • 1回复 待解决
HarmonyOS 如何将HashMap转化成json字符串
918浏览 • 1回复 待解决
如何快速将一个Map对象转为Json字符串
1544浏览 • 1回复 待解决
arkts侧hashmap转为native侧
1732浏览 • 1回复 待解决
HarmonyOS MapObject
728浏览 • 1回复 待解决
如何将Resource资源对象转成string类型
4096浏览 • 1回复 待解决
HarmonyOS Record HashMap map类型选择
2501浏览 • 2回复 待解决
如何将JSON字符串转Class对象
1150浏览 • 1回复 待解决
如何将JSON字符串转Class对象数组?
1267浏览 • 1回复 待解决