【发布时间】:2017-02-24 22:03:33
【问题描述】:
我正在尝试使用 Scala 和 Play。我想返回一个元组,在这种情况下是一个 Tuple3,但可以是任何大小的元组。我想将元组序列化为 JSON,但 Play 似乎不知道如何序列化元组。
我只是想做一些非常简单的事情,如下所示
def getClient(clientId: Int) = Action {
val result = ("I", "AM", "TUPLE")
Ok(Json.toJson(result))
}
找不到类型(字符串、字符串、字符串)的 Json 序列化程序。尝试为此类型实现隐式写入或格式。
我尝试过类似的方法,但它似乎只适用于 Tuple2。
val seq = Seq[(String,String)](("attr1"->"val1"),("attr2"->"val2"))
val s = Json.toJson(seq.map(e => Json.obj((e._1 -> e._2))))
Ok(s).as(JSON)
【问题讨论】:
-
为什么要将 Tuple3 渲染为 Json?你希望你的 Json 看起来如何?如果您知道这一点,您可以编写自己的隐式作家。但是,您是否有不想使用案例类的原因?
-
如果我的服务类方法返回 Tuple (Client, Seq[Project]),我想将其序列化为 Json 以返回给客户端。在 Java 中,我只是将它们包装到 DTO 对象中。想知道是否可能需要在 Scala 中做同样的事情。
-
好的.. 但是你期待什么 JSON,究竟是什么?