我正在尝试为我拥有的案例类创建编码器和解码器:
case class Road(id: String, light: RoadLight, names: Map[String, String])
Run Code Online (Sandbox Code Playgroud)
RoadLight 是一个 java 类,带有枚举。
public enum RoadLight {
red,yellow,green
}
Run Code Online (Sandbox Code Playgroud)
我尝试过进行半自动编码和解码:制作隐式编码器和解码器。
我从 Map[String,String] 类型开始:
implicit val namesDecoder: Decoder[Map[String, String]] = deriveDecoder[Map[String, String]]
implicit val namesEncoder: Encoder[Map[String, String]] = deriveEncoder[Map[String, String]]
Run Code Online (Sandbox Code Playgroud)
但我确实得到了他们两个的错误!
1: 找不到 io.circe.generic.decoding.DerivedDecoder[A] 类型的 Lazy 隐式值
2:错误:方法deriveDecoder没有足够的参数:(隐式解码:shapeless.Lazy[io.circe.generic.decoding.DerivedDecoder[A]])io.circe.Decoder[A]。未指定值参数解码。隐式 val 名称解码器:解码器[Map[String,String]]=deriveDecoder
我已经按照书本做了一切,无法理解出了什么问题。我什至没有尝试解析案例类,只是解析地图,甚至这也不起作用。
有任何想法吗?谢谢!