trait Codec[A] extends Decoder[A] with Encoder[A]
A type class that provides back and forth conversion between values of type A
and the Json format.
Note that this type class is only intended to make instance definition more convenient; it generally should not be used as a constraint.
Instances should obey the laws defined in io.circe.testing.CodecLaws.
- Alphabetic
- By Inheritance
- Codec
- Encoder
- Decoder
- Serializable
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
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.
Create a new decoder that attempts to navigate to the specified field before decoding.
- Definition Classes
- Decoder
-
def
clone(): AnyRef
- Attributes
- protected[lang]
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
contramap[B](f: (B) ⇒ A): Encoder[B]
Create a new Encoder by applying a function to a value of type
B
before encoding as anA
. -
def
decodeAccumulating(c: HCursor): AccumulatingResult[A]
- Definition Classes
- Decoder
-
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.
Choose the first succeeding decoder, wrapping the result in a disjunction.
- Definition Classes
- Decoder
-
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
- Definition Classes
- Decoder
-
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
- Definition Classes
- Decoder
-
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.
- Definition Classes
- Decoder
-
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.
- Definition Classes
- Decoder
-
final
def
eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
-
def
equals(arg0: Any): 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[_]
- 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.
- Definition Classes
- Decoder
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
final
def
kleisli: Kleisli[Result, HCursor, A]
Convert to a Kleisli arrow.
Convert to a Kleisli arrow.
- Definition Classes
- Decoder
-
final
def
map[B](f: (A) ⇒ B): Decoder[B]
Map a function over this Decoder.
-
final
def
mapJson(f: (Json) ⇒ Json): Encoder[A]
Create a new Encoder by applying a function to the output of this one.
-
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.
Choose the first succeeding decoder.
- Definition Classes
- Decoder
-
final
def
prepare(f: (ACursor) ⇒ ACursor): Decoder[A]
Create a new decoder that performs some operation on the incoming JSON before decoding.
Create a new decoder that performs some operation on the incoming JSON before decoding.
- Definition Classes
- Decoder
-
final
def
product[B](fb: Decoder[B]): Decoder[(A, B)]
Run two decoders and return their results as a pair.
Run two decoders and return their results as a pair.
- Definition Classes
- Decoder
-
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.
-
def
tryDecodeAccumulating(c: ACursor): AccumulatingResult[A]
- Definition Classes
- Decoder
-
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.
Build a new instance that fails if the condition does not hold for the input.
Note that this condition is checked before decoding with the current decoder, and if it does not hold, decoding does not continue. This means that if you chain calls to this method, errors will not be accumulated (instead only the error of the last failing
validate
in the chain will be returned).- Definition Classes
- Decoder
-
final
def
validate(errors: (HCursor) ⇒ List[String]): Decoder[A]
Build a new instance that fails if the condition does not hold for the input.
Build a new instance that fails if the condition does not hold for the input.
Note that this condition is checked before decoding with the current decoder, and if it does not hold, decoding does not continue. This means that if you chain calls to this method, errors will not be accumulated (instead only the error of the last failing
validate
in the chain will be returned).- Definition Classes
- Decoder
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
withErrorMessage(message: String): Decoder[A]
Build a new instance with the specified error message.
Build a new instance with the specified error message.
- Definition Classes
- Decoder
Deprecated Value Members
-
final
def
accumulating(c: HCursor): AccumulatingResult[A]
- Definition Classes
- Decoder
- Annotations
- @deprecated
- Deprecated
(Since version 0.12.0) Use decodeAccumulating