我有一个带有泛型类型的抽象类,它从其子类获取该泛型类型的Json格式。但是抽象类还需要该类型序列的Json格式。在Scala中是否有任何方法只根据这些事物的格式获得一系列事物的Json格式?
我正在使用Play Json框架。
这是一个不完全遵循我的案例的例子,但它提供了我想要达到的目标的良好指示:
$session_time
答案 0 :(得分:0)
如果您只是尝试将香蕉序列化为JSON对象,那么您唯一需要做的就是定义Banana
隐式 json格式,其他格式(例如Seq格式) )内置在游戏中:
import play.api.libs.json.Json
case class Banana(color: String)
object Banana {
implicit val jsonFormat = Json.writes[Banana]
}
object PlayJsonTest extends App {
val bananas = Seq(Banana("yellow"), Banana("green"))
println(Json.toJson(bananas)) // [{"color":"yellow"},{"color":"green"}]
}
这也适用于其他类型,因为Json#toJson
方法定义如下:
// Give me an implicit `Writes[T]` and I know how to serialize it
def toJson[T](o: T)(implicit tjs: Writes[T]): JsValue = tjs.writes(o)
隐式使用默认值,其中包括大多数集合的格式。你可以找到它们here。
我希望能帮助你。