HarmonyOS 鸿蒙Next Map<string, Object> 这个数据类型怎么转化为 json? value的类型是string 和 Map<string, Object>

发布于 1周前 作者 htzhanglong 来自 鸿蒙OS

HarmonyOS 鸿蒙Next Map<string, Object> 这个数据类型怎么转化为 json? value的类型是string 和 Map<string, Object> Map<string, Object> 这个数据类型怎么转化为 json? value的类型是string 和 Map<string, Object>

4 回复

当前无相关的工具类,建议自己写个Map转JSON字符串的工具类,可参考如下代码:

const map = new Map([
  ['name', '张三'],
  ['age', '18'],
  ['address', 'xian'],
]);
let jsonObject:Record<string,Object> = {};
map.forEach((value,key) => {
  if (key != undefined && value != undefined) {
    jsonObject[key] = value;
  }
})

let info:string = JSON.stringify(jsonObject);

更多关于HarmonyOS 鸿蒙Next Map<string, Object> 这个数据类型怎么转化为 json? value的类型是string 和 Map<string, Object>的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


Map<string, string | Map<string, Object>> 这种类型的就会出问题,

在HarmonyOS鸿蒙Next中,将Map<string, Object>转化为JSON可以通过JSON.stringify()方法实现。Map<string, Object>中的value类型为stringMap<string, Object>时,JSON.stringify()会自动处理嵌套的Map结构。

示例代码:

let map: Map<string, Object> = new Map();
map.set("key1", "value1");
let nestedMap: Map<string, Object> = new Map();
nestedMap.set("nestedKey1", "nestedValue1");
map.set("key2", nestedMap);

let jsonString: string = JSON.stringify(Object.fromEntries(map));

Object.fromEntries(map)Map转换为普通对象,然后JSON.stringify()将其序列化为JSON字符串。

结果:

{
  "key1": "value1",
  "key2": {
    "nestedKey1": "nestedValue1"
  }
}

此方法适用于Map<string, Object>value类型为stringMap<string, Object>的情况。

在HarmonyOS(鸿蒙)中,你可以使用JSON.stringify()方法将Map<string, Object>转换为JSON字符串。由于Map类型本身不支持直接序列化,你需要先将Map转换为普通对象。以下是示例代码:

function mapToJson(map) {
    let obj = {};
    map.forEach((value, key) => {
        obj[key] = value;
    });
    return JSON.stringify(obj);
}

let myMap = new Map();
myMap.set("key1", "value1");
myMap.set("key2", new Map([["subKey", "subValue"]]));

let jsonString = mapToJson(myMap);
console.log(jsonString);

此代码将Map<string, Object>转换为JSON字符串。

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!