HarmonyOS 鸿蒙Next系统有提供JSON字符串转模型的库么

发布于 1周前 作者 vueper 最后一次编辑是 5天前 来自 鸿蒙OS

HarmonyOS 鸿蒙Next系统有提供JSON字符串转模型的库么

直接使用JSON.parse as这种方式只能转换成object通用对象类型,不能转成自己定义的具体类型,类型方法也丢失了;有没有支持复杂模型嵌套,同时支持泛型,能够转具体类型的库啊,还是说我的用法不对,求各位大佬解答一下

4 回复

可以使用class-transformer和reflect-metadata这两个工具来实现数据自动转变成本地定义的类型。

以下是具体步骤:

1.安装依赖:使用ohpm install安装class-transformer和reflect-metadata。

2.配置JSON数据:将JSON数据定义为一个类的属性。 例如:

json { "name": "John", "age": 30, "isMale": true }

3.使用[@Type](/user/Type)注释指定嵌套类型:在类定义中,使用[@Type](/user/Type)注释来指定嵌套类型。 例如:

typescript class Person {

  [@Type](/user/Type)(() => String) name: string;

  [@Type](/user/Type)(() => Number) age: number;

  [@Type](/user/Type)(() => Boolean) isMale: boolean;

}

typescript class Person {

  [@Type](/user/Type)(() => String) name: string;

  [@Type](/user/Type)(() => Number) age: number;

  [@Type](/user/Type)(() => Boolean) isMale: boolean;

4.使用plainToClass方法转换JSON字符串:使用class-transformer中的plainToClass方法将JSON字符串转换为对象。 例如:

typescript import {plainToClass} from'class-transformer';

const person = plainToClass(Person, JSON.parse(jsonString)); 

通过以上步骤,您可以将JSON字符串中的部分内容转换为对象,并确保只转换所需的部分。

对工程的侵入性太大了,自定义的每个类都要处理,不想用这种写法啊

论坛搜索到的相关问题,提供的方法或者三方库,貌似都多多少少有点问题,官方为啥不提供一个库呢,这都很基础的功能啊

HarmonyOS 鸿蒙Next系统确实提供了JSON字符串转模型的库。在HarmonyOS开发中,可以使用ArkTS提供的JSON模块来实现这一功能。该模块支持将JSON文本转换为对应的ArkTS对象或值,同时也支持将ArkTS对象或数组转换为JSON字符串。

具体来说,可以使用JSON.parse方法将JSON字符串解析为ArkTS对象。该方法接受一个JSON字符串作为输入,并返回一个对应的ArkTS对象。同样地,JSON.stringify方法可以将ArkTS对象或数组转换为JSON字符串。

此外,HarmonyOS还提供了其他与JSON处理相关的功能,如检查对象是否包含某种属性(JSON.has)和从对象中删除某种属性(JSON.remove)。

这些功能使得在HarmonyOS开发中处理JSON数据变得更加方便和高效。如果开发者在使用过程中遇到任何问题,可以参考官方文档或联系官网客服获取帮助。官网地址是:https://www.itying.com/category-93-b0.html

回到顶部