json - 找不到类型 models.MpMember 的 ByteString 解串器。尝试为此类型实现一个隐式的 ByteStringDeserializer

标签 json scala redis playframework-2.4

我正在使用 etaty rediscala (1.4.2) 连接到 Play 2.4 中的 Redis。我的代码如下:

override def getMember(token: String): Future[Option[Member]] = {
  redisClient.get[Member](token)
}

但是,它显示了这个错误:

未找到类型 models.Member 的 ByteString 解串器。尝试为此类型实现隐式 ByteStringDeserializer。

我的成员(member)如下:

case class Member(
  memberId : Long = 0l,
  email : String = "",
  firstName : Option[String] = None,
  lastName : Option[String] = None
)

object Member {
  implicit val memberReads : Reads[Member] = Json.reads[Member]
  implicit val memberWrites : Writes[Member] = Json.writes[Member]
}

感谢您的帮助。

最佳答案

我找到了解决方案。我将 Scala 对象转换为 Json 并作为字符串保存到 Redis。

object Member {
  implicit val byteStringFormatter = new ByteStringFormatter[Member] {
    def serialize(data: Member): ByteString = {
    ByteString(Json.toJson(data).toString)
  }

  def deserialize(bs: ByteString): Member = {
    val s = bs.utf8String
    Json.fromJson[Member](Json.parse(s)).get
  }
}

关于json - 找不到类型 models.MpMember 的 ByteString 解串器。尝试为此类型实现一个隐式的 ByteStringDeserializer,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32123406/

相关文章:

.net - .NET/CLR上Scala中的改进泛型

scala - 如何在本地使用 Spark BigQuery Connector?

scala - 内存不足

node.js - 使用redis缓存关系数据

c# - List<> 无法序列化为 JSON

javascript - 如何构建 MustacheJS 模板以根据 JSON 文件中的值添加动态类?

node.js - 如何使用 Heroku/RedisCloud/Node.js 远程检查数据

ruby-on-rails - Sidekiq 找不到 Rails Active Job 的记录

javascript - 如果数据库有变化,脚本再次执行

WCF 服务未在浏览器中返回任何结果