Circe의 Json → Decoder에게 작업 위임
Scala
012345
import io.circe.parser.{parse => circeParse}
val result = for {
json <- circeParse(targetJson)
result <- json.as[Map[String, Option[String]]]
} yield result
Decoder → HCursor → Map 순서로 진행한다.
Scala
012345678
import io.circe._
implicit val defaultEventDecoder: Decoder[Map[String, Option[String]]] = (c: HCursor) => {
Right(c
.keys
.getOrElse(Iterable.empty).map(jsonProperty => {
jsonProperty -> c.get[String](jsonProperty).toOption
}).toMap)
}