case class JsPath(path: List[PathNode] = List()) extends Product with Serializable
Path to a JsValue; As for path to file on FS, there may not be any matching value in the parsed JSON.
- Source
- JsPath.scala
- Alphabetic
- By Inheritance
- JsPath
- Serializable
- Product
- Equals
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Value Members
- def ++(other: JsPath): JsPath
- def \(idx: Int): JsPath
- def \(child: Symbol): JsPath
- def \(child: String): JsPath
- def \\(child: Symbol): JsPath
- def \\(child: String): JsPath
- def apply(json: JsValue): List[JsValue]
- def apply(idx: Int): JsPath
- def applyTillLast(json: JsValue): Either[JsError, JsResult[JsValue]]
- def asSingleJsResult(json: JsValue): JsResult[JsValue]
- def asSingleJson(json: JsValue): JsLookupResult
- def compose(other: JsPath): 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]
- 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]
- def format[T](implicit f: Format[T]): OFormat[T]
Reads/Writes a T at JsPath using provided implicit Format[T]
- 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
- See also
JsPath.readNullable to see behavior in reads
JsPath.writeNullable to see behavior in writes
- 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
- See also
JsPath.readNullableWithDefault to see behavior in reads
JsPath.writeNullable to see behavior in writes
- 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
- 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).
- See also
JsPath.lazyReadNullable to see behavior in reads
JsPath.lazyWriteNullable to see behavior in writes
- 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).
- See also
JsPath.lazyReadNullable to see behavior in reads
JsPath.lazyWriteNullable to see behavior in writes
- 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).
- See also
JsPath.lazyReadNullable to see behavior in reads
JsPath.lazyWriteNullable to see behavior in writes
- 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).
- See also
JsPath.lazyReadNullable to see behavior in reads
JsPath.lazyWriteNullable to see behavior in writes
- 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.
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 _)
- 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.
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 _)
- 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
case class User(id: Long, name: String, friend: User) implicit lazy val UserReads: Reads[User] = ( (__ \ 'id).write[Long] and (__ \ 'name).write[String] and (__ \ 'friend).lazyWrite(UserReads) )(User.apply _)
- 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
case class User(id: Long, name: String, friend: Option[User]) implicit lazy val UserReads: Reads[User] = ( (__ \ 'id).write[Long] and (__ \ 'name).write[String] and (__ \ 'friend).lazyWriteNullable(UserReads) )(User.apply _)
- val path: List[PathNode]
- def productElementNames: Iterator[String]
- Definition Classes
- Product
- def prune(js: JsValue): JsResult[JsObject]
Simple Prune for simple path and only JsObject
- 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
- def read[T](implicit r: Reads[T]): Reads[T]
Reads a T at 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 except last node: - If one node in JsPath is not found before last node => returns JsError( "missing-path" ) - If all nodes are found till last node, it runs through JsValue with last node =>
- If last node is not found => returns None
- If last node is found with value "null" => returns None
- If last node is found => applies implicit Reads[T]
- 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 one node in JsPath is not found before last node => returns JsError( "missing-path" ) - If all nodes are found till last node, it runs through JsValue with last node =>
- If last node is not found => returns default value
- If last node is found with value "null" => returns None
- If last node is found => applies implicit Reads[T]
- def readWithDefault[T](defaultValue: => T)(implicit r: Reads[T]): Reads[T]
Reads a T at 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
- def toJsonString: String
- def toString(): String
- Definition Classes
- JsPath → AnyRef → Any
- def write[T](t: T)(implicit w: Writes[T]): OWrites[JsValue]
Writes a pure value at given JsPath
- def write[T](implicit w: Writes[T]): OWrites[T]
Writes a T at given 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]
- 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]
- object json