trait Decoder[A] extends Serializable
A type class that provides a way to produce a value of type A
from a Json value.
- Self Type
- Decoder[A]
- Source
- Decoder.scala
- Alphabetic
- By Inheritance
- Decoder
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Concrete 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
- final def at(field: String): Decoder[A]
Create a new decoder that attempts to navigate to the specified field before decoding.
- def clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- def decodeAccumulating(c: HCursor): AccumulatingResult[A]
- final def decodeJson(j: Json): Result[A]
Decode the given Json value.
- final def either[B](decodeB: Decoder[B]): Decoder[Either[A, B]]
Choose the first succeeding decoder, wrapping the result in a disjunction.
- final def emap[B](f: (A) => Either[String, B]): Decoder[B]
Create a new decoder that performs some operation on the result if this one succeeds.
Create a new decoder that performs some operation on the result if this one succeeds.
- f
a function returning either a value or an error message
- final def emapTry[B](f: (A) => Try[B]): Decoder[B]
Create a new decoder that performs some operation on the result if this one succeeds.
Create a new decoder that performs some operation on the result if this one succeeds.
- f
a function returning either a value or an error message
- final def ensure(errors: (A) => List[String]): Decoder[A]
Build a new instance that fails with one or more errors if the condition does not hold for the result.
Build a new instance that fails with one or more errors if the condition does not hold for the result.
If the result of the function applied to the decoded value is the empty list, the new decoder will succeed with that value.
- final def ensure(pred: (A) => Boolean, message: => String): Decoder[A]
Build a new instance that fails if the condition does not hold for the result.
Build a new instance that fails if the condition does not hold for the result.
Note that in the case of chained calls to this method, only the first failure will be returned.
- 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 flatMap[B](f: (A) => Decoder[B]): Decoder[B]
Monadically bind a function over this Decoder.
- final def getClass(): Class[_ <: AnyRef]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def handleErrorWith(f: (DecodingFailure) => Decoder[A]): Decoder[A]
Create a new instance that handles any of this instance's errors with the given function.
Create a new instance that handles any of this instance's errors with the given function.
Note that in the case of accumulating decoding, only the first error will be used in recovery.
- def hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
- final def isInstanceOf[T0]: Boolean
- Definition Classes
- Any
- final def kleisli: Kleisli[Result, HCursor, A]
Convert to a Kleisli arrow.
- final def map[B](f: (A) => B): Decoder[B]
Map a function over this Decoder.
- 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()
- final def or[AA >: A](d: => Decoder[AA]): Decoder[AA]
Choose the first succeeding decoder.
- final def prepare(f: (ACursor) => ACursor): Decoder[A]
Create a new decoder that performs some operation on the incoming JSON before decoding.
- final def product[B](fb: Decoder[B]): Decoder[(A, B)]
Run two decoders and return their results as a pair.
- final def synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- def tryDecode(c: ACursor): Result[A]
Decode the given ACursor.
Decode the given ACursor.
Note that if you override the default implementation, you should also be sure to override
tryDecodeAccumulating
in order for fail-fast and accumulating decoding to be consistent. - def tryDecodeAccumulating(c: ACursor): AccumulatingResult[A]
- final def validate(pred: (HCursor) => Boolean, message: => String): Decoder[A]
Build a new instance that fails if the condition does not hold for the input.
- final def validate(errors: (HCursor) => List[String]): Decoder[A]
Build a new instance that fails if the condition does not hold for the input.
- 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()
- final def withErrorMessage(message: String): Decoder[A]
Build a new instance with the specified error message.