现在的业务场景是需要查询一个中间表orgUserMap,其中包含了组织成员的相关信息。我需要把Leancloud的数据存储为JSON格式以便本地的数据绑定和修改操作。在修改完成之后,我需要把修改后的这一条记录更新到数据库中。参考了文档中序列化和反序列化的方法,我的操作如下:

var userLC //AV.Object
let userJSON = userLC.toFullJSON()) //依次序列化为JSON格式

在本地对userJSON进行了数据绑定和相关修改后,将其反序列化

const userLC2 = AV.parseJSON(userJSON)
userLC2.save()
 .then((resp) => {
          console.log('success')
          console.log(resp)
        })
        .catch((e) => console.log(e))

出现的问题是save指令成功执行,输出了success,resp中的相关属性也是改变之后的属性,但是后端数据库中相应属性没有改变。


Leancloud debug模式输出的内容有点看不懂,是因为PUT的对象为空么?是因为反序列化有什么错误操作么?

也许是序列化和反序列化没有处理一些边界情况?

麻烦您提供以下数据以便排查:

  1. App ID 和 userLC 对应的 Class 名称、objectId
  2. 「本地对userJSON进行了数据绑定和相关修改」这部分相应的代码

反序列化之后的 Object 默认是 not dirty 的,此时 save 不会把现有的属性都重新保存一遍。如果确实需要这么做,可以手动指定属性 save: object.save(object.toJSON())