J'ai le code suivant:avenir et Scala: incompatibilité de type de données
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)))
}
}
Mais, je reçois l'erreur suivante:
$ 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
Le Users.listAll d'instruction est un un avenir qui donnez-moi une liste d'objets Utilisateur que je devrai convertir en JSon. Comme je vois cette commande me donne le type de données scala.concurrent.Future [Seq [model.User]]. Comment puis-je obtenir le Seq [model.user] à partir de cette commande pour pouvoir l'utiliser dans convertUsersToJsonOrig? Merci
Je devais ajouter: importer play.api.libs.concurrent.Execution.Implicits.defaultContext après que tout a très bien fonctionné !! Merci –