HarmonyOS 鸿蒙Next系统有提供JSON字符串转模型的库么
HarmonyOS 鸿蒙Next系统有提供JSON字符串转模型的库么
直接使用JSON.parse as这种方式只能转换成object通用对象类型,不能转成自己定义的具体类型,类型方法也丢失了;有没有支持复杂模型嵌套,同时支持泛型,能够转具体类型的库啊,还是说我的用法不对,求各位大佬解答一下
可以使用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字符串中的部分内容转换为对象,并确保只转换所需的部分。
对工程的侵入性太大了,自定义的每个类都要处理,不想用这种写法啊