Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/templates/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 枚举的自动派生可以';找不到编码器_Scala_Enums_Circe - Fatal编程技术网

Scala 枚举的自动派生可以';找不到编码器

Scala 枚举的自动派生可以';找不到编码器,scala,enums,circe,Scala,Enums,Circe,我有这样一个案例类: 案例类管理员(名称:字符串,角色:角色) 角色是一个枚举 对象角色扩展枚举{ 类型角色=值 val管理器=值 } 当我尝试: import io.circe.generic.auto.\uIo.circe.syntax_ val response=Admin(“John”,Role.Manager).asJson.noSpaces 我得到隐式编码器未找到错误。 not enough arguments for method asJson: (implicit enco

我有这样一个案例类:

案例类管理员(名称:字符串,角色:角色)
角色
是一个枚举

对象角色扩展枚举{
类型角色=值
val管理器=值
}
当我尝试:

import io.circe.generic.auto.\uIo.circe.syntax_
val response=Admin(“John”,Role.Manager).asJson.noSpaces
我得到隐式编码器未找到错误。

not enough arguments for method asJson: (implicit encoder: io.circe.Encoder[Admin])io.circe.Json. Unspecified value parameter encoder.
我想这个错误是由于枚举造成的,所以我改为:

trait角色
对象角色{
对象管理器扩展角色
}
但这也不行

最后,我尝试:

trait Role

object Manager extends Role
没有成功。有人能帮我吗?谢谢

启用以下语法

object CirceEnumeratumExample extends App {
  import enumeratum._
  import io.circe.generic.auto._, io.circe.syntax._

  sealed trait Role extends EnumEntry
  case object Role extends Enum[Role] with CirceEnum[Role] {
    case object Manager  extends Role
    case object User extends Role
    val values = findValues
  }

  case class Admin(name: String, role: Role)
  val response = Admin("John", Role.Manager).asJson.noSpaces
  println(response)
}
哪个输出

{"name":"John","role":"Manager"}
在哪里


为什么我必须在circe中安装整个库来完成从enum到json的简单任务?
libraryDependencies += "com.beachape" %% "enumeratum" % "1.5.13",
libraryDependencies += "com.beachape" %% "enumeratum-circe" % "1.5.21"