代码之家  ›  专栏  ›  技术社区  ›  Eduardo

播放框架:地图没有隐式格式

  •  0
  • Eduardo  · 技术社区  · 5 年前

    使用play 2.5我似乎无法序列化 Map[SomeCaseClass, String]

    case class SomeCaseClass(value: String)
    
    implicit val formatSomeCaseClass = Json.format[SomeCaseClass]
    
    Json.toJson(Map[SomeCaseClass, String](SomeCaseClass("") -> ""))
    

    错误

    找不到类型的JSON序列化程序 scala.collection.immutable.map[somecaseclass,string]。尝试实施 此类型的隐式写入或格式。

    除非我遗漏了一些明显的内容,否则上面的类型有一个隐式格式。

    如果我尝试一些更简单的方法,比如:

    Json.toJson(Something(""))
    Json.toJson(Map[String, String]("" -> ""))
    

    它工作得很好。使用时缺少什么 Map 更复杂的类型,例如 SomeCaseClass ?

    1 回复  |  直到 5 年前
        1
  •  4
  •   Jack Bourne    5 年前

    我认为这里的问题来自JSON。映射转换为包含键/值对的JSON对象。这些对象中的键 must 成为字符串。

    所以A Map[String, T] 无法转换为JSON对象,但不能转换为任意对象 Map[U, T] .