Ответ 1
Учитывая, что существует только ограниченное количество типов, которые вы хотите сериализовать в JSON, это должно работать:
object MyWriter {
implicit val anyValWriter = Writes[Any] (a => a match {
case v:String => Json.toJson(v)
case v:Int => Json.toJson(v)
case v:Any => Json.toJson(v.toString)
// or, if you don't care about the value
case _ => throw new RuntimeException("unserializeable type")
})
}
Вы можете использовать его к тому моменту, импортируя неявное значение в точке, где вы хотите сериализовать Any
:
import MyWriter.anyValWriter
val a: Any = "Foo"
Json.toJson(a)