我已编写此代码以使用circe
读写josnbody
这非常有效。但是,如果我创建一个普通的类Bar
import io.circe._, io.circe.generic.auto._, io.circe.parser._, io.circe.syntax._
case class Foo(i: Int)
val f = Foo(10)
val json = f.asJson.toString
val t1 = decode[Foo](json)
现在我收到错误
class Bar { var i : Int = 0 }
decode[Bar](json)
那么可以使用普通类并使用Circe从json解码它们吗?
答案 0 :(得分:5)
使用io.circe.generic.auto._
,您可以使用Circe的自动泛型推导,它由Shapeless的LabelledGeneric
类型类支持。 LabelledGeneric
仅适用于元组和案例类等产品类型。这就是你看到这个错误的原因,因为Circe的自动模式无法为你的普通类自动派生一个Decoder实例。您可以为您的班级手动implement解码器做什么(请参阅自定义编码器/解码器部分)。