将playframework JsValue转换为MongoDBObject的有效方法
我从客户机接收一个JSON图负载,因此在web api上我得到一个JsValue。我只想拿着它,用几块地装饰一下,然后把它存放在Mongo。大概是这样的:将playframework JsValue转换为MongoDBObject的有效方法,mongodb,scala,playframework,casbah,Mongodb,Scala,Playframework,Casbah,我从客户机接收一个JSON图负载,因此在web api上我得到一个JsValue。我只想拿着它,用几块地装饰一下,然后把它存放在Mongo。大概是这样的: case class Plan(_id: ObjectId, name: String, payload: JsValue) { "_id" = 12345, "name" : "test model", "payload" : {a JSON graph} } 从JsValue到数据库 builder += "payload
case class Plan(_id: ObjectId, name: String, payload: JsValue)
{
"_id" = 12345,
"name" : "test model",
"payload" : {a JSON graph}
}
从JsValue到数据库
builder += "payload" -> JSON.parse(Json.stringify(model.payload))
从数据库返回到JsValue
payload = Json.parse(dbo.as[MongoDBList]("payload").toString))
虽然可以从JsValue->String->MongoDBObject进行转换,但我有两个有效的类型化对象,必须使用非类型化的中间格式从一个对象转换到另一个对象。如果您只想将图形存储为字符串负载,当然可以这样做
您可能想考虑使用CasBah,而不是直接提供JSON能力。我没有使用Play ReactiveMongo。
非常相关,但最终与您位于同一位置: