私はrequest.bodyがコントローラに入っています。何かをする前に、配列であるかどうかをチェックしたいと思います。それ以外の場合は配列でラップしてから処理を進めます。スカラ型チェックと変換
私はこれを試しましたが、私はそれを働かせる/解答を見つけるためにプレイスカラで十分に精通していません。
if (request.body.isInstanceOf[Array] == false) {
var input = Array(request.body)
}
else {
var input = request.body
}
私のコントローラは、このお試しください
def insertMultiple = Action.async(parse.json) {
request =>
[INSERT IF/ELSE Statement here]
Json.fromJson[Seq[Person]](request.body) match {
case JsSuccess(newPersons, _) =>
val documents = newPersons.map(implicitly[collection.ImplicitlyDocumentProducer](_))
collection.bulkInsert(ordered = true)(documents: _*).map{
multiResult =>
Created(s"Created ${multiResult.n} persons")
}
case [email protected](_) =>
Future.successful(BadRequest("Test"))
}
}
body' 'のデフォルトのタイプをされます'AnyContent'、なぜそれが' Array'かもしれないと思いますか?あなたは使用している完全なコントローラメソッドを投稿できますか? –
基本的に私はdbに複数の人を加えることができますが、彼らは[{Person1}、{Person2}]として来ます。しかし、リクエストが{Person}だけで来たら、このメソッドは壊れます。だから私はそれを取り囲む配列をラップして、{{Person}}になってメソッドを動作させることを試みたと思った。 – Jeff