使用 Play 2.5 我似乎无法序列化 Map[SomeCaseClass, String]
case class SomeCaseClass(value: String)
implicit val formatSomeCaseClass = Json.format[SomeCaseClass]
Json.toJson(Map[SomeCaseClass, String](SomeCaseClass("") -> ""))
错误
No Json serializer found for type scala.collection.immutable.Map[SomeCaseClass,String]. Try to implement an implicit Writes or Format for this type.
除非我遗漏了一些明显的东西,否则上面的类型有一个隐式格式。
如果我尝试一些更简单的事情,例如:
Json.toJson(Something(""))
Json.toJson(Map[String, String]("" -> ""))
效果很好。当使用具有更复杂类型的 Map
时,我缺少什么SomeCaseClass
?
最佳答案
我认为这里的问题来自于json。映射被转换为由键/值对组成的 JSON 对象。这些对象中的键必须
是字符串。
因此,Map[String, T]
可以转换为 json 对象,但不能转换为任意 Map[U, T]
。
关于scala - Play Framework : No implicit format for Map,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56456727/