Lets you pattern match JsValues to T.
Lets you pattern match JsValues to T.
For example,
case class Foo(field: Int) object Foo { implicit val format: OFormat[Foo] = Json.format[Foo] object Extract extends JsonFormats.Extract[Foo] } val Foo.Extract(foo) = Json.parse("""{"field": 2}""")
Conveniently construct a format for a case class
type.
Conveniently construct a format for a case class
type.
For example:
case class StorageValue(value: JsObject, version: String) object StorageValue { implicit val jsonFormat: Format[StorageValue] = JsonFormats.caseClassFormat((apply _).tupled, unapply) }
Like caseClassFormat but for OFormat.
Returns a new format that delegates to delegate
for JSON parsing, but adds default
values before calling reads
.
Returns a new format that delegates to delegate
for JSON parsing, but adds default
values before calling reads
. Unfortunately delegate
must be passed in and not constructed
automatically due to Play JSON library macro limitations.