1
一般我很少有case类与exacly同样DEF:圈JSON的特质
def toJson : String = this.asJson.deepMerge(Json.obj(("type", Json.fromString(`type`)))).noSpaces
我想这部分移到特质。 例如:
trait Test[A] {
implicit val encoder: Encoder[A]
def jsonWithType[A] = this.asJson.noSpaces
}
但这返回我当然是一个错误:
could not find implicit value for parameter encoder: io.circe.Encoder[io.outofaxis.pixelart.player.server.application.model.Test[A]]
是否有可能实现我的目标?
编辑:
我也发现了解决方法,在对象,我需要那些jsons我所做的:
implicit def asJsonWithTypeNoSpaces[A <: SomeEvent](obj: A)(implicit encoder: Encoder[A]): String = {
obj.asJson.deepMerge(Json.obj(("type", Json.fromString(obj.`type`)))).noSpaces
}
和工程罚款