object json
- Source
- JsPath.scala
- Alphabetic
- By Inheritance
- json
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Value Members
- final def !=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def ##: Int
- Definition Classes
- AnyRef → Any
- final def ==(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def copyFrom[A <: JsValue](reads: Reads[A]): Reads[JsObject]
( \ 'key).json.copyFrom(reads)
is a
Reads[JsObject]that: - copies a JsValue using passed
Reads[A]- creates a new branch from
JsPathand copies previous value into it
( \ 'key).json.copyFrom(reads)
is a
Reads[JsObject]that: - copies a JsValue using passed
Reads[A]- creates a new branch from
JsPathand copies previous value into it
Useful to copy a value from a JSON branch into another branch.
Example:
import play.api.libs.json.{ Json, __ } val js = Json.obj("key1" -> "value1", "key2" -> "value2") js.validate( (__ \ 'key3).json.copyFrom((__ \ 'key2).json.pick)) // => JsSuccess({"key3":"value2"},/key2)
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.Throwable])
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def ne(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- final def notify(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- final def notifyAll(): Unit
- Definition Classes
- AnyRef
- Annotations
- @native()
- def pick: Reads[JsValue]
( \ 'key).json.pick
is a
Reads[JsValue]that: - picks the given value at the given
JsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type JsValue - returns a
JsResult[JsValue]( \ 'key).json.pick
is a
Reads[JsValue]that: - picks the given value at the given
JsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type JsValue - returns a
JsResult[JsValue]Useful to pick a JsValue at a given
JsPath
Example:
import play.api.libs.json.{ Json, __ } val js = Json.obj("key1" -> "value1", "key2" -> "value2") js.validate((__ \ 'key2).json.pick) // => JsSuccess("value2",/key2)
- def pick[A <: JsValue](implicit r: Reads[A]): Reads[A]
( \ 'key).json.pick[A <: JsValue]
is a
Reads[A]that: - picks the given value at the given
JsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type A (inheriting JsValue) - returns a
JsResult[A]( \ 'key).json.pick[A <: JsValue]
is a
Reads[A]that: - picks the given value at the given
JsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type A (inheriting JsValue) - returns a
JsResult[A]Useful to pick a typed JsValue at a given JsPath
Example:
import play.api.libs.json.{ Json, JsNumber, __ } val js = Json.obj("key1" -> "value1", "key2" -> 123) js.validate((__ \ 'key2).json.pick[JsNumber]) // => JsSuccess(JsNumber(123),/key2)
- def pickBranch: Reads[JsObject]
( \ 'key).json.pickBranch
is a
Reads[JsObject]that: - copies the given branch (
JsPath+ relative JsValue) from the input JS at this given
JsPath- creates a
JsObjectfrom
JsPathand
JsValue- returns a
JsResult[JsObject]( \ 'key).json.pickBranch
is a
Reads[JsObject]that: - copies the given branch (
JsPath+ relative JsValue) from the input JS at this given
JsPath- creates a
JsObjectfrom
JsPathand
JsValue- returns a
JsResult[JsObject]Useful to create/validate an JsObject from a single
JsPath
(potentially modifying it)Example:
import play.api.libs.json.{ Json, __ } val js = Json.obj("key1" -> "value1", "key2" -> Json.obj( "key21" -> "value2") ) js.validate( (__ \ 'key2).json.pickBranch ) // => JsSuccess({"key2":{"key21":"value2"}},/key2)
- def pickBranch[A <: JsValue](reads: Reads[A]): Reads[JsObject]
( \ 'key).json.pickBranch[A <: JsValue](readsOfA)
is a
Reads[JsObject]that: - copies the given branch (
JsPath+ relative JsValue) from the input JS at this given
JsPath- validates this relative
JsValueas an object of type A (inheriting
JsValue) potentially modifying it - creates a JsObject from
JsPathand validated
JsValue- returns a
JsResult[JsObject]( \ 'key).json.pickBranch[A <: JsValue](readsOfA)
is a
Reads[JsObject]that: - copies the given branch (
JsPath+ relative JsValue) from the input JS at this given
JsPath- validates this relative
JsValueas an object of type A (inheriting
JsValue) potentially modifying it - creates a JsObject from
JsPathand validated
JsValue- returns a
JsResult[JsObject]Useful to create/validate an JsObject from a single
JsPath
(potentially modifying it)Example:
import play.api.libs.json.{ Json, JsString, __ } val js = Json.obj("key1" -> "value1", "key2" -> Json.obj( "key21" -> "value2") ) js.validate( (__ \ 'key2).json.pickBranch[JsString]( (__ \ 'key21).json.pick[JsString].map( (js: JsString) => JsString(js.value ++ "3456") ) ) ) // => JsSuccess({"key2":"value23456"},/key2/key21)
- def prune: Reads[JsObject]
( \ 'key).json.prune
is
Reads[JsObject]that prunes the branch and returns remaining JsValue.
( \ 'key).json.prune
is
Reads[JsObject]that prunes the branch and returns remaining JsValue.
Example:
import play.api.libs.json.{ Json, __ } val js = Json.obj("key1" -> "value1", "key2" -> "value2") js.validate( (__ \ 'key2).json.prune ) // => JsSuccess({"key1":"value1"},/key2)
- def put(a: => JsValue): Reads[JsObject]
( \ 'key).put(fixedValue)
is a
Reads[JsObject]that: - creates a JsObject setting A (inheriting JsValue) at given
JsPath- returns a
JsResult[JsObject]( \ 'key).put(fixedValue)
is a
Reads[JsObject]that: - creates a JsObject setting A (inheriting JsValue) at given
JsPath- returns a
JsResult[JsObject]This
Reads
doesn't care about the input JS and is mainly used to set a fixed at a givenJsPath
Please thatA
is passed by name allowing to use an expression reevaluated at each time.Example:
import play.api.libs.json.{ Json, JsNumber, __ } val js = Json.obj("key1" -> "value1", "key2" -> "value2") js.validate( (__ \ 'key3).json.put( { JsNumber((new java.util.Date).getTime()) } ) ) // => JsSuccess({"key3":1376419773171},)
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def update[A <: JsValue](reads: Reads[A]): Reads[JsObject]
( \ 'key).json.update(reads)
is the most complex
Reads[JsObject]but the most powerful: - copies the whole
JsValue => A- applies the passed
Reads[A]on
JsValue => B- deep merges both
JsValues (A ++ B)so
Boverwrites
Aidentical branches
( \ 'key).json.update(reads)
is the most complex
Reads[JsObject]but the most powerful: - copies the whole
JsValue => A- applies the passed
Reads[A]on
JsValue => B- deep merges both
JsValues (A ++ B)so
Boverwrites
Aidentical branches
Please note that if you have prune a branch in
B
, it is still inA
so you'll see it in the resultExample:
import play.api.libs.json.{ Json, JsString, __ } val js = Json.obj("key1" -> "value1", "key2" -> "value2") js.validate(__.json.update((__ \ 'key3).json.put(JsString("value3")))) // => JsSuccess({"key1":"value1","key2":"value2","key3":"value3"},)
- final def wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException])
- final def wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.InterruptedException]) @native()