Mixin that enables derivation of JSON formats for any product (case classes) or coproduct (sealed traits) types.
Serialize parametersOfCaseClasses as parameters-of-case-classes.
Serialize parametersOfCaseClasses as parameters_of_case_classes.
An annotation that designates that a sealed trait is an algebraic datatype (ADT), and that a field containing the serialized childrens' types should be added to the final JSON objects.
An annotation that designates that a sealed trait is an algebraic datatype (ADT), and that a field containing the serialized childrens' types should be added to the final JSON objects.
Note that by default all sealed traits are treated as ADTs, with a type
field called type
. This annotation enables overriding the name of that
field and is really only useful if a child itself has a field called type
that would otherwise result in a conflict.
Example:
// the JSON field "kind" will contain the actual type of the serialized child @adt("kind") sealed abstract class Keyword(`type`: String) case class If(`type`: String) extends Keyword(`type`)
(Since version spray-json-derivation 0.4.3) use DerivedJsonProtocol
(Since version spray-json-derivation 0.4.3) use ImplicitDerivedJsonProtocol
(Since version 1.3.4) use enrichAny
(Since version 1.3.4) use enrichString