HarmonyOS 鸿蒙Next项目中如何使用class-transformer库(npm库)?或在oh仓库中有哪些推荐的json转类对象的库?

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

HarmonyOS 鸿蒙Next项目中如何使用class-transformer库(npm库)?或在oh仓库中有哪些推荐的json转类对象的库? class-transformer库,貌似是npm库,怎么用在鸿蒙项目中呢?或者oh仓库里有什么好用的json转类/对象的库推荐吗

class-transformer库,但是这个库貌似是npm库,怎么用在鸿蒙项目中呢?或者oh仓库里有什么好用的json转类/对象的库推荐吗

4 回复

class-transformer库已迁移至ohpm中,可直接使用命令 ohpm i class-transformer 安装

import { classToPlain, plainToClass } from 'class-transformer';
@Entry
@Component
struct Index {
  @State message: string = 'Hello World';

  aboutToAppear(): void {
    let user = new User(101, "aaa", "bbb");
    let userJson = classToPlain(user);
    console.log("TEST== userJson = " + 
    JSON.stringify(userJson));
    let userObj: User = plainToClass(User, userJson);
    console.log('TEST== UserObj = ', JSON.stringify(userObj));
  }
  build() {
    Row() {
      Column() {
        Text(this.message)
          .fontSize(50)
          .fontWeight(FontWeight.Bold)
      }
      .width('100%')
    .height('100%')
  }
}

class User {
  id: number;
  firstName: string;
  lastName: string;
  constructor(id: number, firstName: string, lastName: string) {
    this.id = id;
    this.firstName = firstName;
    this.lastName = lastName;
  }
}

更多用法请参考:https://github.com/typestack/class-transformer

更多关于HarmonyOS 鸿蒙Next项目中如何使用class-transformer库(npm库)?或在oh仓库中有哪些推荐的json转类对象的库?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


这个库在ohpm仓里搜不到了,有备用的吗

在HarmonyOS鸿蒙Next项目中,若要使用class-transformer库(一个用于转换JSON到TypeScript类的npm库),你可以按照以下步骤操作:

  1. 安装依赖:首先,确保你的鸿蒙项目已经配置了npm或yarn作为包管理工具。然后,在项目根目录下运行npm install class-transformeryarn add class-transformer来安装该库。

  2. 引入并使用:在你的TypeScript文件中,通过import语句引入class-transformer及其相关功能。例如,使用plainToClass函数将JSON对象转换为类实例。

  3. 配置装饰器:由于class-transformer依赖于TypeScript装饰器,确保你的tsconfig.json中启用了装饰器支持(设置"experimentalDecorators": true)。

对于oh仓库中推荐的JSON转类对象的库,除了class-transformer外,你还可以考虑使用typescript-json-schema(用于生成JSON Schema)结合自定义解析逻辑,或者json2ts(用于从JSON生成TypeScript接口定义)来辅助处理JSON数据,但这两者在直接转换JSON到类实例方面可能不如class-transformer直接。

请注意,鸿蒙系统对于npm库的支持可能有限,确保所选库与鸿蒙环境兼容。

如果问题依旧没法解决请联系官网客服,官网地址是 https://www.itying.com/category-93-b0.html

回到顶部