HarmonyOS 鸿蒙Next 数据库中获取的ValuesBucket类型数据怎么转为自定义模型CacheTaskModel?

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

HarmonyOS 鸿蒙Next 数据库中获取的ValuesBucket类型数据怎么转为自定义模型CacheTaskModel?

class CacheTaskModel {
id: number;
name: string;

constructor(id: number, name: string) {
this.id = id;
this.name = name;
}
}

假设获取的ValuesBucket的键值对与CacheTaskModel字段属性是对应的

2 回复

可以使用class-transformer plainToClass方法是将js对象转为类的实例,不能直接将json字符串去转,可以先用JSON.parse()方法将json字符串转为js对象,再用plainToClass方法转为类的实例。

示例:

Button("测试 @pura/harmony-utils").onClick(() => {

  class User {

    id: string = '';

    name: string = '';

    age: number = 0;

    addr: string = '';

    work: string = '';

    state: string = '';

    user?: User;

    constructor() {

    }

    getName(): string {

      return this.name

    }

  }

  let objStr: string =

    '{"id":"No_1060701","name":"张三","age":20,"addr":"乌市天山区","work":"工程师","user":{"id":"No_1060701","name":"张三","age":20,"addr":"乌市天山区","work":"工程师"}}';

  let user = JSONUtil.jsonToBean(User, objStr);

  console.log(user?.getName())

})

更多关于HarmonyOS 鸿蒙Next 数据库中获取的ValuesBucket类型数据怎么转为自定义模型CacheTaskModel?的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


在HarmonyOS鸿蒙Next中,将ValuesBucket类型数据转为自定义模型CacheTaskModel,可以通过以下步骤实现:

  1. 定义CacheTaskModel: 确保你的CacheTaskModel类已经定义好,并且包含了与ValuesBucket中数据对应的属性。

  2. ValuesBucket中提取数据: 使用ValuesBucket提供的getStringgetInt等方法,根据字段名称提取数据。

  3. 数据赋值: 将提取的数据赋值给CacheTaskModel对象的相应属性。

示例代码:

public class CacheTaskModel {
    private String taskName;
    private int taskPriority;
    // 其他属性和getter/setter方法

    public void setData(ValuesBucket bucket) {
        this.taskName = bucket.getString("task_name");
        this.taskPriority = bucket.getInt("task_priority");
        // 设置其他属性
    }
}

// 使用示例
ValuesBucket bucket = ...; // 从数据库获取的数据
CacheTaskModel model = new CacheTaskModel();
model.setData(bucket);

注意:ValuesBucket的字段名称需要与数据库中的列名一致。

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

回到顶部