【问题标题】:mongo db to case class coversion errormongodb到case类转换错误
【发布时间】:2016-05-29 07:07:45
【问题描述】:

我正在使用 mongoDB 并将其响应映射到 scala 中的案例类 我遇到了无法将整数转换为字符串的异常。 那么如何使我的案例类独立于数据库中的数据类型,我尝试使用 'Any' 数据类型,然后在转换为 json 时显示错误。

【问题讨论】:

  • 是否可以提供自己的JSON阅读器。
  • 哪个 MongoDB 驱动程序?
  • 您需要提供您的代码的sn-p。

标签: json mongodb scala spray


【解决方案1】:

如果没有任何示例,很难判断您的代码有什么问题,但这是一个有效的示例。也许你会找到你需要的:

import akka.http.scaladsl.model.DateTime
import reactivemongo.bson.{ BSONDocument, BSONDocumentReader, BSONDocumentWriter, BSONObjectID }

case class Role( id: BSONObjectID = BSONObjectID.generate,
             name: String,
             statusOrder: Int )

object Role {

implicit object RoleBSONReader extends BSONDocumentReader[ Role ] {

def read( doc: BSONDocument ): Role =
  Role(
    id = doc.getAs[ BSONObjectID ]( "_id" ).get,
    name = doc.getAs[ String ]( "name" ).get,
    statusOrder = doc.getAs[ Int ]( "status_order" ).get
  )
}

implicit object RoleBSONWriter extends BSONDocumentWriter[ Role ] {
    def write( role: Role ): BSONDocument =
      BSONDocument(
        "_id" -> role.id,
        "name" -> role.name,
        "status_order" -> role.statusOrder
      )
    }

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-08-09
    • 1970-01-01
    • 1970-01-01
    • 2021-05-21
    • 2015-11-03
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多