我有系统需要将不同类型的对象序列化为 json 和 xml。其中一些是 Lift MetaRecords,一些是案例类。我想使用类型类并创建类似的东西:
trait Serializable[T] {
serialize[T](obj: T): T
}
以及 json、xml 和 open for extension 的常用实现。
我现在面临的问题是序列化本身。目前有不同的上下文来序列化对象。想象一下新闻提要系统。共有三个对象:用户、帖子(提要元素)和照片。这些对象具有一些属性并且可以相互引用。现在,在同样的情况下,我想单独序列化对象(用户设置、首选项等),在其他情况下,我还需要序列化其他对象,即。Feed: List[Post] + 相关照片。为此,我需要提供引用的对象。
我当前的实现因可选参数函数而臃肿。
def feedAsJson(post: MPost, grp: Option[PrivateGroup], commentsBox: Option[List[MPostComment]] = Empty): JObject
我考虑过实施某种上下文解决方案。使用将提供必要数据的隐式上下文参数重载 feedAsJson。我不知道我想如何实现它,因为它可能与蛋糕模式接触数据库。任何建议都非常感谢。