implicit class JDescribe extends AnyRef
Deserialize JsonRawData. If you want to build a Json syntax tree, call jsonTree Otherwise, return deserialize result with failure in as(CodecClassCodec.from[XXX]).
There are currently three main ways to generate Codec.
1. CaseClassCodec
CaseClassCodec.from[XXX]
Applying class and unapply function are required to use CaseClassCodec. Also, the JsonRawData key and the case class field name must exactly match. Order has no effect.
2. ConstCodec
ConstCodec.from("key1", "key2")(XXX.apply)(XXX.unapply)
The variable length character string that becomes the first argument corresponds to the key of Json raw data. Cannot refer to class field name due to dynamic apply function.
NOTE: In addition, due to the nature of macro, it is not possible to transfer the argument of the upper function as the argument of the macro function.
3. Custom codec builder
"root".parsed( { "1/4".parsed(CodecA) ++ "2/4".parsed(CodecA) ++ "3/4".parsed(option(CodecAA)) ++ "4/4".parsed(option(CodecAA)) }.apply(B.apply)(B.unapply) ).apply(C.apply)(C.unapply)
You can use DSL to combine Codec and generate new Codecs.
- Attributes
- protected
- Alphabetic
- By Inheritance
- JDescribe
- AnyRef
- Any
- Hide All
- Show All
- Public
- Protected
Instance Constructors
- new JDescribe(t: String)
- t
Json literal
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
- def as[E](implicit c: Read[E]): Either[DeserializeFailed, E]
- final def asInstanceOf[T0]: T0
- Definition Classes
- Any
- def clone(): AnyRef
- Attributes
- protected[java.lang]
- Definition Classes
- AnyRef
- Annotations
- @throws(classOf[java.lang.CloneNotSupportedException]) @native()
- final def eq(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef
- def equals(arg0: AnyRef): Boolean
- Definition Classes
- AnyRef → Any
- def finalize(): Unit
- Attributes
- protected[java.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
- def jsonTree: JsonVal
- 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 synchronized[T0](arg0: => T0): T0
- Definition Classes
- AnyRef
- def toString(): String
- Definition Classes
- AnyRef → Any
- 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()