эффективный способ преобразования playframework JsValue в MongoDBObject

Я получаю график JSON (полезную нагрузку) от клиента, поэтому в веб-API я получаю JsValue. Я просто хочу взять это, украсить парой полей и сохранить в Монго. Что-то вроде этого:

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, у меня есть два допустимых типизированных объекта, и я должен использовать нетипизированный промежуточный формат для перехода от одного к другому.


person andyczerwonka    schedule 01.04.2015    source источник
comment
Очень похоже, но заканчивается там же, что и вы: stackoverflow.com/questions/11987071/   -  person Ed Staub    schedule 01.04.2015


Ответы (1)


Если вы просто хотите сохранить график в виде строки «полезная нагрузка», вы, конечно, можете это сделать.

Вы можете рассмотреть возможность использования ReactiveMongo вместо Casbah вместе с Play-ReactiveMongo, который обеспечивает возможность прямого перехода в JSON. Я не использовал Play-ReactiveMongo.

person Ed Staub    schedule 01.04.2015