Map [String,List [Object]]类型的Scala播放礼拜反序列化问题

时间:2019-05-08 12:56:55

标签: mongodb scala playframework salat

我正在使用Scala Salat使用MongoDB在我的项目中处理对象。

这是我的课程:

case class MyObject(
   name: String,
   metaInfos: Map[String, List[MetaInfo]] 
)

case class MetaInfo(
  timestamp: Int,
  text: String
)

所以在Mongo中,metaInfos看起来像这样:

"metaInfos" : {
  "info1" : [
     {
       "timestamp" : 123,
       "text" : "some_text"
     },
     {
       "timestamp" : 321,
       "text" : "other_text"
     }
   ],
  "info2": [...] 
}

当我尝试获取MetaInfo值时,会发生此错误:

  

发生服务器错误:scala.collection.immutable.Map $ Map2不能为   强制转换为models.MetaInfo

因此,当我尝试打印出来时,发现没有得到List[MetaInfo]作为值,而是得到了List[Map2]对象。 所以列表元素看起来像Map(timestamp -> 123, text -> "some_text")

没有编译错误,在我尝试从metaInfos映射中获取值之前,一切都很好。

在不更改数据存储方式的情况下,有什么方法可以处理?

它可以与Map [String,Object]类型一起正常工作,但是由于某些原因它不能处理对象列表。

0 个答案:

没有答案