OFormat

trait OFormat[A] extends OWrites[A] with Reads[A] with Format[A]
Companion
object
trait Format[A]
trait Reads[A]
trait OWrites[A]
trait Writes[A]
class Object
trait Matchable
class Any

Value members

Concrete methods

final override def bimap[B](readsMap: A => B, writesContramap: B => A): OFormat[B]
Definition Classes

Inherited methods

def andThen[B](rb: Reads[B])(implicit witness: A <:< JsValue): Reads[B]
Inherited from
Reads
def collect[B](error: JsonValidationError)(f: PartialFunction[A, B]): Reads[B]
Inherited from
Reads
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).

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
override def contramap[B](f: B => A): OWrites[B]
Definition Classes
Inherited from
OWrites
def filter(error: JsonValidationError)(f: A => Boolean): Reads[A]
Inherited from
Reads
def filter(f: A => Boolean): Reads[A]
Inherited from
Reads
def filterNot(error: JsonValidationError)(f: A => Boolean): Reads[A]
Inherited from
Reads
def filterNot(f: A => Boolean): Reads[A]
Inherited from
Reads
def flatMap[B](f: A => Reads[B]): Reads[B]
Inherited from
Reads
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.

Value Params
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")
}
Inherited from
Reads
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.

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
override def narrow[B <: A]: OWrites[B]
Definition Classes
Inherited from
OWrites
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.

Value Params
v

the Reads to run if this one gets a JsError

Returns

A new Reads with the updated behavior.

Inherited from
Reads
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.

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
def reads(json: JsValue): JsResult[A]

Convert the JsValue into a A

Convert the JsValue into a A

Inherited from
Reads
def transform(transformer: Writes[JsValue]): Writes[A]

Transforms the resulting JsValue using a Writes[JsValue].

Transforms the resulting JsValue using a Writes[JsValue].

Inherited from
Writes
def transform(transformer: JsValue => JsValue): Writes[A]

Transforms the resulting JsValue using transformer function.

Transforms the resulting JsValue using transformer function.

Inherited from
Writes
def transform(transformer: OWrites[JsObject]): OWrites[A]

Transforms the resulting JsValue using a Writes[JsValue].

Transforms the resulting JsValue using a Writes[JsValue].

Inherited from
OWrites
def transform(transformer: JsObject => JsObject): OWrites[A]

Transforms the resulting JsObject using a transformer function.

Transforms the resulting JsObject using a transformer function.

Inherited from
OWrites
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]
Inherited from
Reads
def writes(o: A): JsObject
Inherited from
OWrites

Deprecated and Inherited methods

@deprecated("Use [[composeWith]]", "2.7.0")
def compose[B <: JsValue](rb: Reads[B]): Reads[A]
Deprecated
Inherited from
Reads