1

我正在使用 scalatra 并将我的 servlet 配置为始终返回 JSON(如相应指南中所述)。使用 MongoDB 和 Salat 引导我将 MongoDBObject 读回到我的案例类中——这似乎工作得很好。

我的案例类:

import org.bson.types.ObjectId
import com.novus.salat.annotations.raw.Key

case class Player(_id: ObjectId, firstName: String, ...)

打印案例类对象输出:

Player(547489ee93f4272e548ded63,Peter,...)

如您所见,objectid 是 org.bson.types.ObjectId。自动序列化为 JSON 将其发送到浏览器:

{"_id":{},"firstName":"Peter",...}

我的 ObjectID 在哪里?我究竟做错了什么?

4

1 回答 1

5

我在网上找到了以下内容: https ://gist.github.com/dozed/5631680

经过一个小测试后,似乎我所要做的就是将我的 servlet 中的代码从

protected implicit val jsonFormats: Formats = DefaultFormats

protected implicit val jsonFormats: Formats = DefaultFormats + new ObjectIdSerializer

并添加

import org.json4s.mongo.ObjectIdSerializer

也许这将有助于另一个 Scalatra-NOOB ... ;-)

于 2014-11-26T11:46:32.997 回答