У меня есть типизированная запечатанная черта
sealed trait PropertyValue[T <: Property]
Мне нужно написать format
для сериализации / десериализации Json.Я пытаюсь
implicit def format[P <: Property : Format]: Format[PropertyValue[P]] = {
Format(
Reads(j =>
Json.fromJson[StringPropertyValue](j)
.orElse(Json.fromJson[NumberPropertyValue](j))
.orElse(JsError("Undefined type"))
),
Writes(o => Json.toJson(o))
)
}
, но у меня есть
type mismatch;
[error] found : play.api.libs.json.JsResult[Product with Serializable with PropertyValue[_ >: StringProperty with NumberProperty <: Product with Serializable with Property]]
[error] required: play.api.libs.json.JsResult[PropertyValue[P]]
Есть ли способ для реализации Reads[trait[T]]
для типизированной характеристики?