是否可以从circe
而不是JSON获取基础hlist表示?基本上将案例类转换为HList
注意:我知道这可以通过无形直接实现,我想尝试circe's
基于宏的解析器,因为我遇到了无形的性能问题。
答案 0 :(得分:1)
为什么您认为circe
"中有任何"基础hlist表示?
circe
对JSON parsing String
做了什么,介绍了类型类Decoder和Encoder
trait Encoder[A] extends Serializable { self =>
def apply(a: A): Json
//...
}
trait Decoder[A] extends Serializable { self =>
def apply(c: HCursor): Decoder.Result[A]
//...
}
和deriving这些使用shapeless
的类型类。例如,这意味着如果我们有Decoder[H]
和Decoder[T]
,那么我们就有Decoder[H :: T]
。但除Json以外的案例类没有基础circe
表示。
circe
没有将案例类转换为HList
,shapeless
会这样做。