Json formatter: write an implicit to define both a serializer and a deserializer for any type.
- Companion
- object
Value members
Concrete methods
Inherited methods
Creates a new Reads
, which first passes the input JSON to rb
,
and then it executes this Reads
on the pre-processed JSON
(if rb
has successfully handled the input JSON).
Creates a new Reads
, which first passes the input JSON to rb
,
and then it executes this Reads
on the pre-processed JSON
(if rb
has successfully handled the input JSON).
- Inherited from
- Reads
Creates a new Reads
, which transforms the successful result
from the current instance using the given function.
Creates a new Reads
, which transforms the successful result
from the current instance using the given function.
- Value Params
- f
the function applied on the successful
A
valuefinal class Foo private(val code: String) extends AnyVal val A = new Foo("A") val B = new Foo("B") import play.api.libs.json.Reads val r: Reads[Foo] = implicitly[Reads[String]].flatMapResult { case "A" => JsSuccess(A) case "B" => JsSuccess(B) case _ => JsError("error.expected.foo") }
- Inherited from
- Reads
Create a new Reads
which maps the value produced by this Reads
.
Create a new Reads
which maps the value produced by this Reads
.
- Type Params
- B
The type of the value produced by the new
Reads
.
- Value Params
- f
the function applied on the result of the current instance, if successful
- Inherited from
- Reads
Creates a new Reads
, based on this one, which first executes this
Reads
' logic then, if this Reads
resulted in a JsError
, runs
the second Reads
on the JsValue.
Creates a new Reads
, which first transforms the input JSON
using the given tranformer
, and then it executes this Reads
on the pre-processed JSON.
Creates a new Reads
, which first transforms the input JSON
using the given tranformer
, and then it executes this Reads
on the pre-processed JSON.
- Value Params
- transformer
the function to pre-process the input JSON
- Inherited from
- Reads
Widen this Reads
.
Widen this Reads
.
import play.api.libs.json.Reads
sealed trait Animal
case class Dog(name: String) extends Animal
case class Cat(name: String) extends Animal
def simple(r: Reads[Dog]): Reads[Animal] = r.widen[Animal]
- Inherited from
- Reads