如果这是一个简单的问题,请道歉。我需要返回Action.async
方法中的Json结构,但是我不确定如何创建嵌入已经是未来的列表的未来。有什么建议么?在Scala中返回未来列表json
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))
,我发现了以下错误的'好(JSON)'行:'不能scala.concurrent.Future [play.api.libs.json.JsObject]的实例写入HTTP响应。尝试定义一个可写[scala.concurrent.Future [play.api.libs.json.JsObject]]'我添加了Writes类(请参阅更新),并且仍然有问题 – ps0604
我在答案中犯了一个错误(我让你返回一个包含Future而不是Future [Response]的响应)。现在已经修复了。 –