Scala Play List[Any] 到 JsArray

Scala Play List[Any] to JsArray

我有一个 List[Any],我想将其转换为 JsArray

作品类型列表:

Json.arr(List("1"))

但是:

Json.arr(List("1").asInstanceOf[List[Any]])

投掷:

diverging implicit expansion for type play.api.libs.json.Reads[T1]
starting with method oFormatFromReadsAndOWrites in object OFormat

如何将 List[Any] 转换为 JsArray

我试过了:

implicit val listAnyFormat: OFormat[List[Any]] = Json.format[List[Any]]

但我被抛出:

No instance of Reads is available for scala.collection.immutable.Nil in the implicit scope 

使用 Play 2.8.x 和 Scala 2.11.8

你不能。

至少在没有定义 Format[Any] 的情况下,技术上可以做到,但可能无法涵盖所有​​可能的情况。

问题是为什么你首先有一个 List[Any]?它在 Scala 世界中没有多大意义。

如果你能有一个 List[Something] 会更好,其中 Something 有一组已知的子类型并且每个子类型都有一个 Format.