【发布时间】:2019-05-31 07:34:33
【问题描述】:
我有一个包含Map[String, String] 类型字段的案例类
完整的类定义是-
case class MyConfig(version: Int, pairs: Map[String, String]).
我要解码的 json 是 -
{
"version":1,
"pairs":[
{
"key1":"value1",
"key2":"value2"
}
]
}
当我尝试将字符串解码为 MyConfig 对象 println(decode[MyConfig](jsonStr)) 时,出现以下错误 -
Left(DecodingFailure([K, V]Map[K, V], List(DownField(pairs)))).
完整的代码是-
case class MyConfig(version: Int, pairs: Map[String, String])
import io.circe._, io.circe.generic.auto._, io.circe.parser._, io.circe.syntax._
val jsonStr = """ {
| "version":1,
| "pairs":[
| {
| "key1":"value1",
| "key2":"value2"
| }
| ]
| } """.stripMargin
println(jsonStr)
println(decode[MyConfig](jsonStr))
我可以解码 Map json 对象,如 here 演示的那样,但不能解码带有 map 字段的对象。
知道如何解决这个错误吗?
【问题讨论】:
标签: json scala scala-cats circe