A Reads
object describes how to decode JSON into a value.
Reads
objects are typically provided as implicit values. When Reads
implicit values are in scope, a program is able to deserialize JSON
into values of the right type.
The inverse of a Reads
object is a Writes object, which describes
how to encode a value into JSON. If you combine a Reads
and a Writes
then you get a Format.
- Companion
- object
Value members
Abstract methods
Concrete 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).
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).
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).
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") }
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") }
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") }
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
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
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
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
, 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.
- Value Params
- v
the
Reads
to run if this one gets aJsError
- Returns
A new
Reads
with the updated behavior.
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
, 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.
- Value Params
- v
the
Reads
to run if this one gets aJsError
- Returns
A new
Reads
with the updated behavior.
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
, 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.
- Value Params
- v
the
Reads
to run if this one gets aJsError
- Returns
A new
Reads
with the updated behavior.
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
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
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
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]
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]