Format

play.api.libs.json.Format
See theFormat companion object
trait Format[A] extends Writes[A], Reads[A]

Json formatter: write an implicit to define both a serializer and a deserializer for any type.

Attributes

Companion
object
Graph
Supertypes
trait Reads[A]
trait Writes[A]
class Object
trait Matchable
class Any
Known subtypes
trait OFormat[A]

Members list

Value members

Concrete methods

def bimap[B](readsMap: A => B, writesContramap: B => A): Format[B]

Maps reads and writes operations between the types A and B, using the given functions.

Maps reads and writes operations between the types A and B, using the given functions.

Value parameters

readsMap

the function applied to the read A value

writesContraMap

the function to produce a A from Bbefore writing

Attributes

Inherited methods

def andThen[B](rb: Reads[B])(implicit witness: A <:< JsValue): Reads[B]

Attributes

Inherited from:
Reads
def collect[B](error: JsonValidationError)(f: PartialFunction[A, B]): Reads[B]

Attributes

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

Attributes

Inherited from:
Reads
def contramap[B](f: B => A): Writes[B]

Returns a new instance that first converts a B value to a A one, before converting this A value into a JsValue.

Returns a new instance that first converts a B value to a A one, before converting this A value into a JsValue.

Attributes

Inherited from:
Writes
def filter(error: JsonValidationError)(f: A => Boolean): Reads[A]

Attributes

Inherited from:
Reads
def filter(f: A => Boolean): Reads[A]

Attributes

Inherited from:
Reads
def filterNot(error: JsonValidationError)(f: A => Boolean): Reads[A]

Attributes

Inherited from:
Reads
def filterNot(f: A => Boolean): Reads[A]

Attributes

Inherited from:
Reads
def flatMap[B](f: A => Reads[B]): Reads[B]

Attributes

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 parameters

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")
}

Attributes

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 parameters

B

The type of the value produced by the new Reads.

Value parameters

f

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

Attributes

Inherited from:
Reads
def narrow[B <: A]: Writes[B]

Narrows to any B super-type of A.

Narrows to any B super-type of A.

Attributes

Inherited from:
Writes
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 parameters

v

the Reads to run if this one gets a JsError

Attributes

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 parameters

transformer

the function to pre-process the input JSON

Attributes

Inherited from:
Reads
def reads(json: JsValue): JsResult[A]

Convert the JsValue into a A

Convert the JsValue into a A

Attributes

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

Attributes

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

Transforms the resulting JsValue using transformer function.

Transforms the resulting JsValue using transformer function.

Attributes

Inherited from:
Writes
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]

Attributes

Inherited from:
Reads
def writes(o: A): JsValue

Converts the A value into a JsValue.

Converts the A value into a JsValue.

Attributes

Inherited from:
Writes

Deprecated and Inherited methods

def compose[B <: JsValue](rb: Reads[B]): Reads[A]

Attributes

Deprecated
true
Inherited from:
Reads