繁体   English   中英

Scala类型检查和转换

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM