私はそのような私のプログラムでJSON形式の変換に列挙型の暗黙的なヴァルの多くを持っている:Scalaの一般的な暗黙のヴァル
implicit val format = new Format[AuthRoleIndividual] {
def reads(json: JsValue) = JsSuccess(AuthRoleIndividual.withName(json.as[String]))
def writes(myEnum: AuthRoleIndividual) = JsString(myEnum.toString)
}
注:AuthRoleIndividual
はEnumeration
を拡張します。私のアプローチは次のようなものを書くことでした:
implicit val format[T <: Enumeration] = new Format[T] {
def reads(json: JsValue) = JsSuccess(T.withName(json.as[String]))
def writes(myEnum: T) = JsString(myEnum.toString)
}
しかし、それはできません。何か案は?あなたがValue
タイプにimplicit
をバインドする必要がありますので
ところでPlay JSONは既に['Writes']を提供しています(https://www.playframework.com/documentation/2.6.0/api/scala/index.html#play.api.libs.json.Writes$ @enumNameWrites [E%3C:Enumeration]:play.api.libs.json.Writes [E#Value])および['Reads'](https://www.playframework.com/documentation/2.6.0/api/列挙のためにscala/index.html#[email protected] [E%3C:列挙型](列挙型:E):play.api.libs.json.Reads [E#値]) – cchantep