例如-我有一个实体:
class XdUser(entity: Entity) : XdEntity(entity) {
var someName by xdStringProp()
var someNumber by xdIntProp()
}从/到json序列化/反序列化它的正确方法是什么?我必须创建数据类,它只复制实体的字段,然后将值传播到XdUser?还是有别的办法?
发布于 2018-12-11 15:45:58
将XdUser序列化为JSON,您应该确保序列化程序不会处理XdUser#entity和其他公共链接,这些链接可能会暴露大量不必要的数据。反序列化带来了另一个问题,因为应该告知反序列化器如何使用构造函数XdUser(entity: Entity)从json实例化类。
从我的预期更好的选择是有另一个级别的rest。它提供了控制公开数据的数量、控制权限(如果有)的能力,以及如何更新实体的方法。
Rest级别的实现如下:
open class EntityVO<T: XdEntity>(xdId: String?) {
}
class UserVO(xdId: String?): EntityVO<XdUser>(xdId: String?) {
var someName by delegateTo(XdUser::someName)
var someNumber by delegateTo(XdUser::someNumber)
}delegateTo应该提供委托,它将通过xdId查找XdUser,并使用指定的XdUser属性获取/设置值。对于链接/链接,逻辑将更加复杂,但想法可能是相同的。
https://stackoverflow.com/questions/53725167
复制相似问题