Packages

trait Reads[A] extends AnyRef

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.

Self Type
Reads[A]
Annotations
@implicitNotFound()
Source
Reads.scala
Linear Supertypes
AnyRef, Any
Ordering
  1. Alphabetic
  2. By Inheritance
Inherited
  1. Reads
  2. AnyRef
  3. Any
  1. Hide All
  2. Show All
Visibility
  1. Public
  2. Protected

Abstract Value Members

  1. abstract def reads(json: JsValue): JsResult[A]

    Convert the JsValue into a A

Concrete Value Members

  1. final def !=(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  2. final def ##: Int
    Definition Classes
    AnyRef → Any
  3. final def ==(arg0: Any): Boolean
    Definition Classes
    AnyRef → Any
  4. def andThen[B](rb: Reads[B])(implicit witness: <:<[A, JsValue]): Reads[B]
  5. final def asInstanceOf[T0]: T0
    Definition Classes
    Any
  6. def clone(): AnyRef
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.CloneNotSupportedException]) @HotSpotIntrinsicCandidate() @native()
  7. def collect[B](error: JsonValidationError)(f: PartialFunction[A, B]): Reads[B]
  8. def composeWith[B <: JsValue](rb: Reads[B]): Reads[A]

    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).

  9. final def eq(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  10. def equals(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef → Any
  11. def filter(error: JsonValidationError)(f: (A) => Boolean): Reads[A]
  12. def filter(f: (A) => Boolean): Reads[A]
  13. def filterNot(error: JsonValidationError)(f: (A) => Boolean): Reads[A]
  14. def filterNot(f: (A) => Boolean): Reads[A]
  15. def flatMap[B](f: (A) => Reads[B]): Reads[B]
  16. def flatMapResult[B](f: (A) => JsResult[B]): Reads[B]

    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.

    f

    the function applied on the successful A value

    final 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")
    }
  17. final def getClass(): Class[_ <: AnyRef]
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  18. def hashCode(): Int
    Definition Classes
    AnyRef → Any
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  19. final def isInstanceOf[T0]: Boolean
    Definition Classes
    Any
  20. def map[B](f: (A) => B): Reads[B]

    Create a new Reads which maps the value produced by this Reads.

    Create a new Reads which maps the value produced by this Reads.

    B

    The type of the value produced by the new Reads.

    f

    the function applied on the result of the current instance, if successful

  21. final def ne(arg0: AnyRef): Boolean
    Definition Classes
    AnyRef
  22. final def notify(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  23. final def notifyAll(): Unit
    Definition Classes
    AnyRef
    Annotations
    @HotSpotIntrinsicCandidate() @native()
  24. def orElse(v: Reads[A]): Reads[A]

    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.

    v

    the Reads to run if this one gets a JsError

    returns

    A new Reads with the updated behavior.

  25. def preprocess(f: PartialFunction[JsValue, JsValue]): Reads[A]

    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.

  26. final def synchronized[T0](arg0: => T0): T0
    Definition Classes
    AnyRef
  27. def toString(): String
    Definition Classes
    AnyRef → Any
  28. final def wait(arg0: Long, arg1: Int): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  29. final def wait(arg0: Long): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException]) @native()
  30. final def wait(): Unit
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.InterruptedException])
  31. def widen[B >: A]: Reads[B]

    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]

Deprecated Value Members

  1. def compose[B <: JsValue](rb: Reads[B]): Reads[A]
    Annotations
    @deprecated
    Deprecated

    (Since version 2.7.0) Use composeWith

  2. def finalize(): Unit
    Attributes
    protected[lang]
    Definition Classes
    AnyRef
    Annotations
    @throws(classOf[java.lang.Throwable]) @Deprecated
    Deprecated

    (Since version 9)

Inherited from AnyRef

Inherited from Any

Ungrouped