HarmonyOS 鸿蒙Next PersistenceV2 序列化保存失败,已提供复现DEMO

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

HarmonyOS 鸿蒙Next PersistenceV2 序列化保存失败,已提供复现DEMO

PersistenceV2 序列化保存失败,复现DEMO:https://gitee.com/smithyj/harmony

cke_905.png


更多关于HarmonyOS 鸿蒙Next PersistenceV2 序列化保存失败,已提供复现DEMO的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html

6 回复

经过不断的debug调试,发现问题出在这个let userData = JSON.parse,这种方式获取的对象赋值给this.AppPersistenceModel.userModel 就会有问题,可能是bug,需要内部定位确认下。有结论我会反馈到这边。

临时解决方案:直接new 不通过json转,是可以的demo如下

let userData1 :UserModel = {
        "id": "1",
        "nickname": "2",
        name: '1',
        user_face: '2',
        safe_mobile: '',
        company: '',
        department: '',
        job: '',
        is_hr: 0,
        login_exception: 0,
        login_tips_img: ''
      }
      this.AppPersistenceModel.userModel = userData1 

更多关于HarmonyOS 鸿蒙Next PersistenceV2 序列化保存失败,已提供复现DEMO的实战系列教程也可以访问 https://www.itying.com/category-93-b0.html


好的,这个问题还挺影响业务开发的,因为网络框架用的是 axios 它里面会自动 JSON.parse ,希望官方能尽快解决这个序列化和反序列化问题

这个临时方案实在过程中不行啊,有没有其他办法啊,因为实际开发中不可能会这样写啊

你用json转过之后,把属性一个一个的,赋值给new出来的对象UserModel 。确实不太可能这么写。 let userData1 :UserModel = {“id”: jsonObj.id, “nickname”:jsonObj.nickname…}

有没有华为的人出来回复下

针对您提到的HarmonyOS 鸿蒙Next PersistenceV2 序列化保存失败的问题,以下是一些可能的原因及排查方向:

  1. 数据类型不兼容:检查您尝试序列化的数据类型是否支持PersistenceV2的序列化机制。某些复杂对象或自定义类可能需要自定义序列化器。

  2. 存储权限:确保您的应用已获得必要的存储权限,特别是如果您是在尝试将数据保存到外部存储。

  3. 序列化方法使用错误:核实您使用的序列化方法是否正确,包括API调用顺序和参数设置。

  4. 版本兼容性问题:检查您的HarmonyOS SDK版本是否与PersistenceV2的当前实现兼容。有时,SDK更新会引入不兼容的变更。

  5. 复现DEMO审查:详细审查您提供的复现DEMO,特别是关注序列化逻辑和异常处理部分,确认是否有逻辑错误或遗漏。

  6. 日志分析:查看系统日志和应用日志,寻找与序列化失败相关的错误信息或堆栈跟踪,这有助于定位问题根源。

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

回到顶部