我在Scala做的事情.我有以下案例类:
import shapeless._
case class Foo(param1: String, param2: HList)
Run Code Online (Sandbox Code Playgroud)
我想使用Circe获得这种类型的JSON表示.我还想将生成的JSON字符串映射回类型.
模块circe-shapes自动推导出HLists,并且很容易从HList到JSON再返回.看这个例子:
scala> import shapeless._
import shapeless._
scala> import io.circe._, io.circe.generic.auto._, io.circe.parser._, io.circe.syntax._
import io.circe._
import io.circe.generic.auto._
import io.circe.parser._
import io.circe.syntax._
scala> import io.circe.shapes._
import io.circe.shapes._
scala> val myList = 30 :: "car" :: HNil
myList: shapeless.::[Int,shapeless.::[String,shapeless.HNil]] = 30 :: car :: HNil
scala> val listJson = myList.asJson
listJson: io.circe.Json =
[
30,
"car"
]
scala> listJson.as[HList] // won't work
<console>:32: error: could not …Run Code Online (Sandbox Code Playgroud)