首页 > 解决方案 > 通用 JsArray 的 BSONSerializer

问题描述

我需要为我的案例类过滤器制作一个 BSONSerializer,看起来如下所示。

case class Filter(name: String,
              `type`: LogicType,
              value: JsArray,
              operator: OperatorType)

在我的序列化程序类中,我已经有以下人员:

    implicit val LogicTypeHandler: BSONHandler[LogicType] = EnumHandler.handler(LogicType)
    implicit val OperatorTypeHandler: BSONHandler[OperatorType] = EnumHandler.handler(OperatorType)
>>> Missing BSON serializer for JsArray
    implicit val FilterHandler: BSONDocumentHandler[Filter] = Macros.handler[Filter]

问题是我需要将“值”保存为 JsArray 并且只有在以后的运行时使用时我才会知道它到底是什么。就我而言,我希望它是字符串或整数数组。这里的问题是如何为这个 JsArray 实现 BSONSerializer。我收到错误:

Implicit not found for 'Filter.value': reactivemongo.api.bson.BSONReader[play.api.libs.json.JsArray]

附加信息:

"org.reactivemongo" %% "play2-reactivemongo" % "1.0.0-play28"
"com.typesafe.play" % "sbt-plugin" % "2.8.5"

请指教。

标签: scalareactivemongo

解决方案


推荐阅读