问题描述
我需要为spray.json.JsValue(它实际上是我的模型类中的一个Option[JsValue])创建一个元数据,以便将它插入一个带有JSON 字段的表中。 我试图遵循关于自定义映射/JSON 映射的 doobie 文档,所以我有这个:
implicit val jsonMeta: Meta[JsValue] =
Meta.Advanced.other[PGobject]("json").timap[Json](
a => parse(a.getValue).leftMap[Json](e => throw e).merge)(
a => {
val o = new PGobject
o.setType("json")
o.setValue(a.noSpaces)
o
}
)
我不知道如何处理这个案子。
解决方法
最后,我想出了这个:
implicit val jsonMeta: Meta[JsValue] =
Meta[String].timap[JsValue](
str => str.parseJson)( jsVal => jsVal.prettyPrint)