-1
我有下面的代碼:未來和Scala:數據類型不匹配
package controllers.usersPage
import play.api.mvc._
import play.api.libs.json._
import model.{User, Users, Patients, CObject}
import scala.concurrent.Future
import service.{UserService}
class allUsersToJSON() extends Controller {
def convertUsersToJsonOrig(lusers: Seq[User]): JsValue = {Json.toJson(
lusers.map { u => Map("id" -> u.id, "firstName" -> u.firstName, "lastName" -> u.lastName, "email" -> u.email, "username" -> u.username, "password" -> u.password)}) }
def retAllUsers = Action { request =>
Ok(Json.stringify(convertUsersToJsonOrig(Users.listAll)))
}
}
但是,我得到了一個錯誤:
$ compile
[info] Compiling 69 Scala sources and 3 Java sources to
H:\project\target\scala-2.11\classes...
[error] H:\project\app\controllers\usersPage\retrieveAllUsersJSON.scala:29: type mismatch;
[error] found : scala.concurrent.Future[Seq[model.User]]
[error] required: Seq[model.User]
[error] Ok(Json.stringify(convertUsersToJsonOrig(Users.listAll)))
[error] ^
[warn] Class com.sun.tools.xjc.Options not found - continuing with a stub.
[warn] one warning found
[error] one error found
[error] (root/compile:compileIncremental) Compilation failed
[error] Total time: 7 s, completed Apr 17, 2017 10:51:11 AM
指令Users.listAll是未來的一個將給我一個我需要轉換爲JSon的用戶對象列表。正如我看到這個命令給我scala.concurrent.Future [Seq [model.User]]數據類型。我怎麼能從這個命令獲取Seq [model.user],以便我可以在convertUsersToJsonOrig中使用它? 感謝
我需要補充: import play.api.libs.concurrent.Execution.Implicits.defaultContext 之後,所有的工作都很好!謝謝 –