trait JsonDecoder[A] extends JsonDecoderPlatformSpecific[A]
A JsonDecoder[A]
instance has the ability to decode JSON to values of type A
, potentially
failing with an error if the JSON content does not encode a value of the given type.
- Self Type
- JsonDecoder[A]
- Alphabetic
- By Inheritance
- JsonDecoder
- JsonDecoderPlatformSpecific
- AnyRef
- Any
- Hide All
- Show All
- Public
- All
Abstract Value Members
-
abstract
def
unsafeDecode(trace: List[JsonError], in: RetractReader): A
Low-level, unsafe method to decode a value or throw an exception.
Low-level, unsafe method to decode a value or throw an exception. This method should not be called in application code, although it can be implemented for user-defined data structures.
Concrete Value Members
-
final
def
!=(arg0: Any): Boolean
- Definition Classes
- AnyRef → Any
-
final
def
##(): Int
- Definition Classes
- AnyRef → Any
-
final
def
*>[B](that: ⇒ JsonDecoder[B]): JsonDecoder[B]
An alias for JsonDecoder#zipRight.
-
final
def
<*[B](that: ⇒ JsonDecoder[B]): JsonDecoder[A]
An alias for JsonDecoder#zipLeft.
-
final
def
<*>[B](that: ⇒ JsonDecoder[B]): JsonDecoder[(A, B)]
An alias for JsonDecoder#zip.
-
final
def
<+>[B](that: ⇒ JsonDecoder[B]): JsonDecoder[Either[A, B]]
An alias for JsonDecoder#orElseEither.
-
final
def
<>[A1 >: A](that: ⇒ JsonDecoder[A1]): JsonDecoder[A1]
An alias for JsonDecoder#orElse.
-
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( ... ) @native()
-
final
def
decodeJson(str: CharSequence): Either[String, A]
Attempts to decode a value of type
A
from the specifiedCharSequence
, but may fail with a human-readable error message if the provided text does not encode a value of this type.Attempts to decode a value of type
A
from the specifiedCharSequence
, but may fail with a human-readable error message if the provided text does not encode a value of this type.Note: This method may not entirely consume the specified character sequence.
-
final
def
decodeJsonStream[R <: Blocking](stream: ZStream[R, Throwable, Char]): ZIO[R, Throwable, A]
Attempts to decode a stream of characters into a single value of type
A
, but may fail with a human-readable exception if the stream does not encode a value of this type.Attempts to decode a stream of characters into a single value of type
A
, but may fail with a human-readable exception if the stream does not encode a value of this type.Note: This method may not consume the full string.
- Definition Classes
- JsonDecoderPlatformSpecific
- See also
-
final
def
decodeJsonStreamInput[R <: Blocking](stream: ZStream[R, Throwable, Byte], charset: Charset = StandardCharsets.UTF_8): ZIO[R, Throwable, A]
Attempts to decode a stream of bytes using the user supplied Charset into a single value of type
A
, but may fail with a human-readable exception if the stream does not encode a value of this type.Attempts to decode a stream of bytes using the user supplied Charset into a single value of type
A
, but may fail with a human-readable exception if the stream does not encode a value of this type.Note: This method may not consume the full string.
- Definition Classes
- JsonDecoderPlatformSpecific
- See also
decodeJsonStream For a
Char
stream variant
-
final
def
decodeJsonTransducer(delimiter: JsonStreamDelimiter = JsonStreamDelimiter.Array): ZTransducer[Blocking, Throwable, Char, A]
- Definition Classes
- JsonDecoderPlatformSpecific
-
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
getClass(): Class[_]
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
def
hashCode(): Int
- Definition Classes
- AnyRef → Any
- Annotations
- @native()
-
final
def
isInstanceOf[T0]: Boolean
- Definition Classes
- Any
-
def
map[B](f: (A) ⇒ B): JsonDecoder[B]
Returns a new codec whose decoded values will be mapped by the specified function.
-
final
def
mapOrFail[B](f: (A) ⇒ Either[String, B]): JsonDecoder[B]
Returns a new codec whose decoded values will be mapped by the specified function, which may itself decide to fail with some type of error.
-
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
orElse[A1 >: A](that: ⇒ JsonDecoder[A1]): JsonDecoder[A1]
Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead.
Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead. This method may be unsafe from a security perspective: it can use more memory than hand coded alternative and so lead to DOS.
For example, in the case of an alternative between
Int
andBoolean
, a hand coded alternative would look like:val decoder: JsonDecoder[AnyVal] = JsonDecoder.peekChar[AnyVal] { case 't' | 'f' => JsonDecoder[Boolean].widen case c => JsonDecoder[Int].widen }
-
final
def
orElseEither[B](that: ⇒ JsonDecoder[B]): JsonDecoder[Either[A, B]]
Returns a new codec that combines this codec and the specified codec using fallback semantics: such that if this codec fails, the specified codec will be tried instead.
-
final
def
synchronized[T0](arg0: ⇒ T0): T0
- Definition Classes
- AnyRef
-
def
toString(): String
- Definition Classes
- AnyRef → Any
- def unsafeDecodeMissing(trace: List[JsonError]): A
-
final
def
wait(): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long, arg1: Int): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... )
-
final
def
wait(arg0: Long): Unit
- Definition Classes
- AnyRef
- Annotations
- @throws( ... ) @native()
-
final
def
widen[B >: A]: JsonDecoder[B]
Returns this decoder but widened to the its given super-type
-
def
xmap[B](f: (A) ⇒ B, g: (B) ⇒ A): JsonDecoder[B]
- Annotations
- @nowarn()
-
final
def
zip[B](that: ⇒ JsonDecoder[B]): JsonDecoder[(A, B)]
Returns a new codec that combines this codec and the specified codec into a single codec that decodes a tuple of the values decoded by the respective codecs.
-
final
def
zipLeft[B](that: ⇒ JsonDecoder[B]): JsonDecoder[A]
Zips two codecs, but discards the output on the right hand side.
-
final
def
zipRight[B](that: ⇒ JsonDecoder[B]): JsonDecoder[B]
Zips two codecs, but discards the output on the left hand side.
-
final
def
zipWith[B, C](that: ⇒ JsonDecoder[B])(f: (A, B) ⇒ C): JsonDecoder[C]
Zips two codecs into one, transforming the outputs of both codecs by the specified function.