我是新手,scala,reactivemongo,想知道是否有人可以用简单易懂的方式向我解释以下代码。
def createFromJson = Action.async(parse.json) { request =>
import play.api.libs.json.Reads._
val transformer: Reads[JsObject] =
Reads.jsPickBranch[JsString](__ \ "name") and
Reads.jsPickBranch[JsNumber](__ \ "age") and
Reads.jsPut(__ \ "created", JsNumber(new java.util.Date().getTime())) reduce
request.body.transform(transformer).map { result =>
collection.insert(result).map { lastError =>
Logger.debug(s"Successfully inserted with LastError: $lastError")
Created
}
}.getOrElse(Future.successful(BadRequest("invalid json")))}
我知道它从具有名称和年龄属性的 JSON 用户创建用户。我不明白的是在这种方法中读取输入 JSON 的方式。还有 Action.async(par.json)、request => getorElse、Future 等的概念。
也将不胜感激任何更简单/更简单的编写此方法的方法。
提前致谢!