[英]Scala Type Check and Conversion
我有一个request.body进入控制器,在对其执行任何操作之前,我想检查它是否为数组。 否则将其包装在数组中,然后继续。
我尝试过这个,但是我对scala不够熟悉,无法使它正常工作/找到答案。
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 err@JsError(_) =>
Future.successful(BadRequest("Test"))
}
}
尝试这个:
// as long as you have an implicit Format[Person] in scope
// List[Person]
val people = r.body.validate[JsArray].asOpt.getOrElse {
Json.arr(r.body)
}.as[List[Person]]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.