小编Doe*_*Doe的帖子

Circe Scala - 编码和解码 Map[] 和案例类

我正在尝试为我拥有的案例类创建编码器和解码器:

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

我已经按照书本做了一切,无法理解出了什么问题。我什至没有尝试解析案例类,只是解析地图,甚至这也不起作用。

有任何想法吗?谢谢!

scala circe

5
推荐指数
2
解决办法
7530
查看次数

标签 统计

circe ×1

scala ×1