eve*_*zon 1 json mongodb scalatra objectid json4s
我正在使用scalatra,并将servlet配置为始终返回JSON(如相应指南中所述)。使用MongoDB和Salat使我回到将MongoDBObject读回到我的case类中的地步-这似乎很棒。
我的案例课:
import org.bson.types.ObjectId
import com.novus.salat.annotations.raw.Key
case class Player(_id: ObjectId, firstName: String, ...)
Run Code Online (Sandbox Code Playgroud)
打印case类对象将输出以下内容:
Player(547489ee93f4272e548ded63,Peter,...)
Run Code Online (Sandbox Code Playgroud)
如您所见,objectid是org.bson.types.ObjectId。自动序列化为JSON会将其发送到浏览器:
{"_id":{},"firstName":"Peter",...}
Run Code Online (Sandbox Code Playgroud)
我的ObjectID在哪里?我究竟做错了什么?
我在网上找到了以下内容:https : //gist.github.com/dozed/5631680
经过一个小测试,似乎我要做的只是从更改servlet中的代码。
protected implicit val jsonFormats: Formats = DefaultFormats
Run Code Online (Sandbox Code Playgroud)
至
protected implicit val jsonFormats: Formats = DefaultFormats + new ObjectIdSerializer
Run Code Online (Sandbox Code Playgroud)
并添加
import org.json4s.mongo.ObjectIdSerializer
Run Code Online (Sandbox Code Playgroud)
也许这会帮助另一个Scalatra-NOOB ... ;-)
| 归档时间: |
|
| 查看次数: |
528 次 |
| 最近记录: |