我目前在 scala 中有这个,它可以满足我的要求:
private def prepareResponse(response: Array[SomeItem]): String = {
implicit val writes = Json.writes[SomeItem]
Json.stringify(JsObject(Map("message" -> Json.toJson(response))))
}
但是,我想将其通用化,以便我可以将它作为响应放入任何内容,并且只要为我尝试转换为 Json 的类型定义了 Json.writes,它就会对其进行字符串化。
例如:
private def prepareResponse(response: Any): String = {
implicit val writes = Json.writes[SomeItem]
implicit val writes2 = Json.writes[SomeOtherItem]
...
Json.stringify(JsObject(Map("message" -> Json.toJson(response))))
}
当然,这不起作用,因为它说没有为Any
. 添加一个 forAny
也不起作用,因为我收到错误:
No unapply or unapplySeq function found
[scalac-2.11] implicit val writeAny = Json.writes[Any]
[scalac-2.11]
以“正确”方式(如果有的话)做到这一点的理想方式是什么?
提前致谢!