これは簡単な質問である場合は謝罪してください。私はAction.async
メソッドでJson構造体を返す必要がありますが、すでに未来のリストを埋め込む未来をどのように作成するかはわかりません。助言がありますか?Scala jsonのPlayで今後のリストを返す
case class Clazz (a: Int, b: Int)
def index = Action.async {
val json = JsObject(Seq(
"x" -> JsString("1"),
"list" -> Json.toJson(getList) // this line does not compile
))
Ok(json)
}
def getList = Future {
val c1 = Clazz (1,1)
val c2 = Clazz (2,2)
val list = List(c1,c2)
list
}
UPDATE:
は以下を追加しましたが、オブジェクトを書き込みます:
implicit val cc: Writes[Clazz] = (
(JsPath \ "a").write[Int] and
(JsPath \ "b").write[Int]
) (unlift(Clazz.unapply))
私は 'OK(JSON)'の行に次のエラーを取得しています: 'HTTPレスポンスにscala.concurrent.Future [play.api.libs.json.JsObject]のインスタンスを作成することができません。書き込み可能クラスを定義しようとしました[scala.concurrent.Future [play.api.libs.json.JsObject]] '書き込みクラスを追加しました(更新を参照)。まだ問題があります – ps0604
私は私の答えで間違いを犯しました未来[応答]の代わりに未来を含む応答を返す)。今は修正されています。 –