Это создает Writes
для класса case
import play.api.libs.json._
import play.api.libs.functional.syntax._
case class A(a: String, b: String, c: String)
(JsPath.write[String] and
JsPath.write[String] and
JsPath.write[String])(unlift(A.unapply))
Это может быть расширено для работы для параметров 2, 3, 4, 5, 6 и т.д.... но не 1.
case class B(a: String)
(JsPath.write[String])(unlift(B.unapply))
Ошибка компилятора:
error: overloaded method value write with alternatives:
(t: String)(implicit w: play.api.libs.json.Writes[String])play.api.libs.json.OWrites[play.api.libs.json.JsValue] <and>
(implicit w: play.api.libs.json.Writes[String])play.api.libs.json.OWrites[String]
cannot be applied to (B => String)
(JsPath.write[String])(unlift(B.unapply))
^
Аналогичная проблема возникает при Reads
.
Как я могу получить Reads
и Writes
для кластеров с одним параметром?