如何使用Doobie、MySQL 和 Play JSON 在查询级别实现基本的序列化/反序列化?
1 回答
2
在互联网上搜索有关 MySQL 和 JDBC 中 JSON 特定类型支持的答案后,似乎String
我们所能获得的一切(如果这是错误的,请插话并纠正我)。IMO,Doobie 文档并没有使这个答案显而易见,因为提供的示例通过 PostGRES 使用了更严格的示例。不幸的是,MySQL 一点也不严谨,但这是另一个话题。
现在,这是一个简单的解决方案示例,这也假设 Play JSON Readers/Writers 在范围内:
import doobie.util.meta.Meta
import play.api.libs.json._
def playJsonMeta[A: Reads: Writes]: Meta[A] = Meta[String].xmap[A](
Json.parse(_).as[A],
s => Json.stringify(Json.toJson(s))
)
implicit val fooMeta: Meta[Foo] = playJsonMeta[Foo]
请注意,如果反序列化失败,这将引发异常。
于 2018-10-02T20:41:48.183 回答