JsPath

play.api.libs.json.JsPath
See theJsPath companion class
object JsPath extends JsPath

Companion object and root path.

For an object { "name": "foo" }, the path to the name property is:

import play.api.libs.json.JsPath

JsPath \ "name"

For an object { "id": 1, "nested": { "score": 0.12 } }, the path to the nested score is:

import play.api.libs.json.JsPath

JsPath \ "nested" \ "score"

Attributes

Companion
class
Graph
Supertypes
trait Product
trait Mirror
class JsPath
trait Serializable
trait Product
trait Equals
class Object
trait Matchable
class Any
Show all
Self type
JsPath.type

Members list

Type members

Inherited classlikes

object json

Attributes

Inherited from:
JsPath
Supertypes
class Object
trait Matchable
class Any

Inherited types

type MirroredElemLabels <: Tuple

The names of the product elements

The names of the product elements

Attributes

Inherited from:
Mirror
type MirroredLabel <: String

The name of the type

The name of the type

Attributes

Inherited from:
Mirror

Value members

Concrete methods

def createObj(pathValues: (JsPath, JsValue)*): JsObject

Inherited methods

def ++(other: JsPath): JsPath

Attributes

Inherited from:
JsPath
def \(idx: Int): JsPath

Attributes

Inherited from:
JsPath
def \(child: Symbol): JsPath

Attributes

Inherited from:
JsPath
def \(child: String): JsPath

Attributes

Inherited from:
JsPath
def \\(child: Symbol): JsPath

Attributes

Inherited from:
JsPath
def \\(child: String): JsPath

Attributes

Inherited from:
JsPath
def apply(json: JsValue): List[JsValue]

Attributes

Inherited from:
JsPath
def apply(idx: Int): JsPath

Attributes

Inherited from:
JsPath
def applyTillLast(json: JsValue): Either[JsError, JsResult[JsValue]]

Attributes

Inherited from:
JsPath

Attributes

Inherited from:
JsPath

Attributes

Inherited from:
JsPath
def compose(other: JsPath): JsPath

Attributes

Inherited from:
JsPath
def format[T](w: Writes[T])(implicit r: Reads[T]): OFormat[T]

Reads/Writes a T at JsPath using provided explicit Writes[T] and implicit Reads[T]

Reads/Writes a T at JsPath using provided explicit Writes[T] and implicit Reads[T]

Attributes

Inherited from:
JsPath
def format[T](r: Reads[T])(implicit w: Writes[T]): OFormat[T]

Reads/Writes a T at JsPath using provided explicit Reads[T] and implicit Writes[T]

Reads/Writes a T at JsPath using provided explicit Reads[T] and implicit Writes[T]

Attributes

Inherited from:
JsPath
def format[T](implicit f: Format[T]): OFormat[T]

Reads/Writes a T at JsPath using provided implicit Format[T]

Reads/Writes a T at JsPath using provided implicit Format[T]

Attributes

Inherited from:
JsPath
def formatNullable[T](implicit f: Format[T]): OFormat[Option[T]]

Reads/Writes a Option[T] (optional or nullable field) at given JsPath

Reads/Writes a Option[T] (optional or nullable field) at given JsPath

Attributes

See also

JsPath.readNullable to see behavior in reads

JsPath.writeNullable to see behavior in writes

Inherited from:
JsPath
def formatNullableWithDefault[T](defaultValue: => Option[T])(implicit f: Format[T]): OFormat[Option[T]]

Reads/Writes a Option[T] (nullable field) at given JsPath

Reads/Writes a Option[T] (nullable field) at given JsPath

Attributes

See also

JsPath.readNullableWithDefault to see behavior in reads

JsPath.writeNullable to see behavior in writes

Inherited from:
JsPath
def formatWithDefault[T](defaultValue: => T)(implicit f: Format[T]): OFormat[T]

Reads/Writes a T at JsPath using provided implicit Format[T] with fallback to default value

Reads/Writes a T at JsPath using provided implicit Format[T] with fallback to default value

Attributes

Inherited from:
JsPath
def lazyFormat[T](r: => Reads[T], w: => Writes[T]): OFormat[T]

Lazy Reads/Writes a T at given JsPath using explicit Reads[T] and Writes[T] (useful in case of recursive case classes).

Lazy Reads/Writes a T at given JsPath using explicit Reads[T] and Writes[T] (useful in case of recursive case classes).

Attributes

See also

JsPath.lazyReadNullable to see behavior in reads

JsPath.lazyWriteNullable to see behavior in writes

Inherited from:
JsPath
def lazyFormat[T](f: => Format[T]): OFormat[T]

Lazy Reads/Writes a T at given JsPath using implicit Format[T] (useful in case of recursive case classes).

Lazy Reads/Writes a T at given JsPath using implicit Format[T] (useful in case of recursive case classes).

Attributes

See also

JsPath.lazyReadNullable to see behavior in reads

JsPath.lazyWriteNullable to see behavior in writes

Inherited from:
JsPath
def lazyFormatNullable[T](r: => Reads[T], w: => Writes[T]): OFormat[Option[T]]

Lazy Reads/Writes a Option[T] (optional or nullable field) at given JsPath using explicit Reads[T] and Writes[T] (useful in case of recursive case classes).

Lazy Reads/Writes a Option[T] (optional or nullable field) at given JsPath using explicit Reads[T] and Writes[T] (useful in case of recursive case classes).

Attributes

See also

JsPath.lazyReadNullable to see behavior in reads

JsPath.lazyWriteNullable to see behavior in writes

Inherited from:
JsPath
def lazyFormatNullable[T](f: => Format[T]): OFormat[Option[T]]

Lazy Reads/Writes a Option[T] (optional or nullable field) at given JsPath using implicit Format[T] (useful in case of recursive case classes).

Lazy Reads/Writes a Option[T] (optional or nullable field) at given JsPath using implicit Format[T] (useful in case of recursive case classes).

Attributes

See also

JsPath.lazyReadNullable to see behavior in reads

JsPath.lazyWriteNullable to see behavior in writes

Inherited from:
JsPath
def lazyRead[T](r: => Reads[T]): Reads[T]

Reads a T at JsPath using the explicit Reads[T] passed by name which is useful in case of recursive case classes for ex.

Reads a T at JsPath using the explicit Reads[T] passed by name which is useful in case of recursive case classes for ex.

import play.api.libs.functional.syntax._
import play.api.libs.json.{ Reads, __ }

case class User(id: Long, name: String, friend: User)

implicit lazy val UserReads: Reads[User] = (
 (__ \ 'id).read[Long] and
 (__ \ 'name).read[String] and
 (__ \ 'friend).lazyRead(UserReads)
)(User.apply _)

Attributes

Inherited from:
JsPath
def lazyReadNullable[T](r: => Reads[T]): Reads[Option[T]]

Reads lazily a Option[T] search optional or nullable field at JsPath using the explicit Reads[T] passed by name which is useful in case of recursive case classes for ex.

Reads lazily a Option[T] search optional or nullable field at JsPath using the explicit Reads[T] passed by name which is useful in case of recursive case classes for ex.

import play.api.libs.functional.syntax._
import play.api.libs.json.{ Reads, __ }

case class User(id: Long, name: String, friend: Option[User])

implicit lazy val UserReads: Reads[User] = (
 (__ \ 'id).read[Long] and
 (__ \ 'name).read[String] and
 (__ \ 'friend).lazyReadNullable(UserReads)
)(User.apply _)

Attributes

Inherited from:
JsPath
def lazyWrite[T](w: => Writes[T]): OWrites[T]

Writes a T at JsPath using the explicit Writes[T] passed by name which is useful in case of recursive case classes for ex

Writes a T at JsPath using the explicit Writes[T] passed by name which is useful in case of recursive case classes for ex

import play.api.libs.functional.syntax._
import play.api.libs.json.{ Writes, __ }

case class User(id: Long, name: String, friend: User)

implicit lazy val UserWrites: Writes[User] = (
 (__ \ 'id).write[Long] and
 (__ \ 'name).write[String] and
 (__ \ 'friend).lazyWrite(UserWrites)
)(unlift(User.unapply))

Attributes

Inherited from:
JsPath
def lazyWriteNullable[T](w: => Writes[T]): OWrites[Option[T]]

Writes a Option[T] at JsPath using the explicit Writes[T] passed by name which is useful in case of recursive case classes for ex

Writes a Option[T] at JsPath using the explicit Writes[T] passed by name which is useful in case of recursive case classes for ex

Please note that it's not writeOpt to be coherent with readNullable

import play.api.libs.functional.syntax._
import play.api.libs.json.{ Writes, __ }

case class User(id: Long, name: String, friend: Option[User])

implicit lazy val UserWrites: Writes[User] = (
 (__ \ 'id).write[Long] and
 (__ \ 'name).write[String] and
 (__ \ 'friend).lazyWriteNullable(UserWrites)
)(unlift(User.unapply))

Attributes

Inherited from:
JsPath
def productElementNames: Iterator[String]

Attributes

Inherited from:
Product
def productIterator: Iterator[Any]

Attributes

Inherited from:
Product

Simple Prune for simple path and only JsObject

Simple Prune for simple path and only JsObject

Attributes

Inherited from:
JsPath
def read[T](t: T): Reads[T]

Pure Reads doesn't read anything but creates a JsObject based on JsPath with the given T value

Pure Reads doesn't read anything but creates a JsObject based on JsPath with the given T value

Attributes

Inherited from:
JsPath
def read[T](implicit r: Reads[T]): Reads[T]

Reads a T at JsPath

Reads a T at JsPath

Attributes

Inherited from:
JsPath
def readNullable[T](implicit r: Reads[T]): Reads[Option[T]]

Reads a Option[T] search optional or nullable field at JsPath (field not found or null is None and other cases are Error).

Reads a Option[T] search optional or nullable field at JsPath (field not found or null is None and other cases are Error).

It runs through JsValue following all JsPath nodes on JsValue:

  • If any node in JsPath is not found => returns None
  • If any node in JsPath is found with value "null" => returns None
  • If the entire path is found => applies implicit Reads[T]

Attributes

Inherited from:
JsPath
def readNullableWithDefault[T](defaultValue: => Option[T])(implicit r: Reads[T]): Reads[Option[T]]

Reads an Option[T] search optional or nullable field at JsPath (field not found replaced by default value, null is None and other cases are Error).

Reads an Option[T] search optional or nullable field at JsPath (field not found replaced by default value, null is None and other cases are Error).

It runs through JsValue following all JsPath nodes on JsValue except last node:

  • If any node in JsPath is not found => returns default value
  • If any node in JsPath is found with value "null" => returns None
  • If the entire path is found => applies implicit Reads[T]

Attributes

Inherited from:
JsPath
def readWithDefault[T](defaultValue: => T)(implicit r: Reads[T]): Reads[T]

Reads a T at JsPath

Reads a T at JsPath

Attributes

Inherited from:
JsPath
def rw[T](implicit r: Reads[T], w: Writes[T]): OFormat[T]

Reads/Writes a T at JsPath using provided implicit Reads[T] and Writes[T]

Reads/Writes a T at JsPath using provided implicit Reads[T] and Writes[T]

Please note we couldn't call it "format" to prevent conflicts

Attributes

Inherited from:
JsPath
def toJsonString: String

Attributes

Inherited from:
JsPath
override def toString: String

Returns a string representation of the object.

Returns a string representation of the object.

The default representation is platform dependent.

Attributes

Returns

a string representation of the object.

Definition Classes
JsPath -> Any
Inherited from:
JsPath
def write[T](t: T)(implicit w: Writes[T]): OWrites[JsValue]

Writes a pure value at given JsPath

Writes a pure value at given JsPath

Attributes

Inherited from:
JsPath
def write[T](implicit w: Writes[T]): OWrites[T]

Writes a T at given JsPath

Writes a T at given JsPath

Attributes

Inherited from:
JsPath
def writeNullable[T](implicit w: Writes[T]): OWrites[Option[T]]

Writes a Option[T] at given JsPath If None => doesn't write the field (never writes null actually) else => writes the field using implicit Writes[T]

Writes a Option[T] at given JsPath If None => doesn't write the field (never writes null actually) else => writes the field using implicit Writes[T]

Attributes

Inherited from:
JsPath
def writeOptionWithNull[T](implicit w: Writes[T]): OWrites[Option[T]]

Writes a Option[T] at given JsPath If None => writes 'null' else => writes the field using implicit Writes[T]

Writes a Option[T] at given JsPath If None => writes 'null' else => writes the field using implicit Writes[T]

Attributes

Inherited from:
JsPath