我有一个scala案例类如下
case class Intro(name : String, quality : Any)
我使用scala circe
库将此对象编码为Json。
我正在使用的代码是
import io.circe._
import io.circe.generic.auto._
import io.circe.syntax._
object Example extends App{
println(Intro("Vikash","something").asJson)
}
编译过程中出现以下错误。
could not find implicit value for parameter encoder: io.circe.Encoder[com.xxx.Intro]
如果我将案例类属性quality
的类型更改为String
类型,那么它可以正常工作。
如何使用属性
中的Any
类型对案例类进行编码
由于
答案 0 :(得分:1)
您的问题与您使用自动编解码器生成这一事实有关,这完全是编译时间,所以给定Any类型的值几乎不可能为它生成编解码器。您应该能够通过以下方式解决此问题:
case class Intro[T](name: String, quality: T)
。这样您就可以使用Intro [String],Intro [Int]等。如果您不知道什么类型的类或隐式解析如何工作,您应该首先了解它们。