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 aReads[JsObject]that: - copies a JsValue using passedReads[A]- creates a new branch fromJsPathand copies previous value into it( \ 'key).json.copyFrom(reads)is aReads[JsObject]that: - copies a JsValue using passedReads[A]- creates a new branch fromJsPathand copies previous value into itUseful 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.pickis aReads[JsValue]that: - picks the given value at the givenJsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type JsValue - returns aJsResult[JsValue]( \ 'key).json.pickis aReads[JsValue]that: - picks the given value at the givenJsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type JsValue - returns aJsResult[JsValue]Useful to pick a JsValue at a given
JsPathExample:
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 aReads[A]that: - picks the given value at the givenJsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type A (inheriting JsValue) - returns aJsResult[A]( \ 'key).json.pick[A <: JsValue]is aReads[A]that: - picks the given value at the givenJsPath(WITHOUT THE PATH) from the input JS - validates this element as an object of type A (inheriting JsValue) - returns aJsResult[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.pickBranchis aReads[JsObject]that: - copies the given branch (JsPath+ relative JsValue) from the input JS at this givenJsPath- creates aJsObjectfromJsPathandJsValue- returns aJsResult[JsObject]( \ 'key).json.pickBranchis aReads[JsObject]that: - copies the given branch (JsPath+ relative JsValue) from the input JS at this givenJsPath- creates aJsObjectfromJsPathandJsValue- returns aJsResult[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 aReads[JsObject]that: - copies the given branch (JsPath+ relative JsValue) from the input JS at this givenJsPath- validates this relativeJsValueas an object of type A (inheritingJsValue) potentially modifying it - creates a JsObject fromJsPathand validatedJsValue- returns aJsResult[JsObject]( \ 'key).json.pickBranch[A <: JsValue](readsOfA)is aReads[JsObject]that: - copies the given branch (JsPath+ relative JsValue) from the input JS at this givenJsPath- validates this relativeJsValueas an object of type A (inheritingJsValue) potentially modifying it - creates a JsObject fromJsPathand validatedJsValue- returns aJsResult[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.pruneisReads[JsObject]that prunes the branch and returns remaining JsValue.( \ 'key).json.pruneisReads[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 aReads[JsObject]that: - creates a JsObject setting A (inheriting JsValue) at givenJsPath- returns aJsResult[JsObject]( \ 'key).put(fixedValue)is aReads[JsObject]that: - creates a JsObject setting A (inheriting JsValue) at givenJsPath- returns aJsResult[JsObject]This
Readsdoesn't care about the input JS and is mainly used to set a fixed at a givenJsPathPlease thatAis 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 complexReads[JsObject]but the most powerful: - copies the wholeJsValue => A- applies the passedReads[A]onJsValue => B- deep merges bothJsValues (A ++ B)soBoverwritesAidentical branches( \ 'key).json.update(reads)is the most complexReads[JsObject]but the most powerful: - copies the wholeJsValue => A- applies the passedReads[A]onJsValue => B- deep merges bothJsValues (A ++ B)soBoverwritesAidentical branchesPlease note that if you have prune a branch in
B, it is still inAso 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()