我在 scala-salat Google 小组中问了这个问题,但几天没有回复,因此在这里尝试。
我有一个案例类,它有一个包含在 Option
中的集合。
case class SomeClass(
var name:Option[String]=None,
var addresses:Option[Set[Address]]=None
)
case class Address(
var street:Option[String]=None,
var zip:Option[String]=None
)
文档很好地存储在 Mongo 中。但是,当我尝试使用 findOne
(有或没有 SalatDAO
)来获取此地址时,地址字段具有表示地址的 JSON 文本,而不是地址案例类。
因此,Lift-JSON 会跳过我的案例类中包含 Option[Collection[A]]
的所有字段。当我删除 Option
并使用 addresses=Set[Address]()
时,它可以工作。但是,现在我的 JSON 中没有数据的结果是空集,如果消费者删除了条目,我无法找到更新,或者我得到一个空的 Set
因为消费者未在原始请求中发送此字段。
使用 Option
会将该字段设置为 None
,这意味着我不必担心它为空或被修改。
任何帮助将不胜感激。
最佳答案
抱歉,Salat 目前不支持包含集合的选项。
关于scala - Salat 没有反序列化映射到 Option[Set[A]] 的集合,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7458517/