如何使用doobie、mysql和play json在查询级别实现基本的序列化/反序列化?
z0qdvdin1#
在互联网上搜索了mysql和jdbc中json特定类型支持的答案之后,看起来 String 是我们所有的可用(请插话,并纠正我,如果这是错误的)。在我看来,doobie doc并没有明确给出这个答案,因为提供的例子使用了postgres提供的更严格的例子。不幸的是,mysql一点也不严谨,但这是另一个主题。现在,这里有一个简单的解决方案示例,它还假设play json的读写器在范围内:
String
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]
请注意,如果反序列化失败,这将引发异常。
1条答案
按热度按时间z0qdvdin1#
在互联网上搜索了mysql和jdbc中json特定类型支持的答案之后,看起来
String
是我们所有的可用(请插话,并纠正我,如果这是错误的)。在我看来,doobie doc并没有明确给出这个答案,因为提供的例子使用了postgres提供的更严格的例子。不幸的是,mysql一点也不严谨,但这是另一个主题。现在,这里有一个简单的解决方案示例,它还假设play json的读写器在范围内:
请注意,如果反序列化失败,这将引发异常。