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

发布于 1周前 作者 yibo5220 最后一次编辑是 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 回复

可以试下三方库的转换 参考如下链接

https://gitee.com/tongyuyan/harmony-utils/blob/master/entry/src/main/ets/pages/utils/JSONUtilPage.ets

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中的列对应。例如:

    public class CacheTaskModel {
        private String taskId;
        private String taskName;
        private int priority;
    
        // Getters and Setters
    }
    
  2. 获取ValuesBucket数据: 从数据库中查询数据,获取ValuesBucket对象。

  3. 转换数据: 遍历ValuesBucket对象,填充CacheTaskModel实例。

    ValuesBucket bucket = ...; // 从数据库查询得到
    CacheTaskModel model = new CacheTaskModel();
    model.setTaskId(bucket.getString(bucket.getColumnIndex("task_id")));
    model.setTaskName(bucket.getString(bucket.getColumnIndex("task_name")));
    model.setPriority(bucket.getInt(bucket.getColumnIndex("priority")));
    
  4. 处理多个数据: 如果查询返回多行数据,可以使用循环处理每个ValuesBucket对象,生成多个CacheTaskModel实例。

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

回到顶部