xyz.cofe.json4s3.derv

Type members

Classlikes

trait DefaultValue[T]

Значение по умолчанию, используется при восстановлении из Json

Значение по умолчанию, используется при восстановлении из Json

Пример

case class Append(value:String)
object Append:
given DefaultValue[Append] with
  override def defaultValue: Option[Append] = Some(Append("def_value"))

Еще пример

 case class DefVal( a:String )
object DefVal:
  given defval:DefaultValue[DefVal] = new DefaultValue[DefVal] {
    override def defaultValue: Option[DefVal] = Some(DefVal("sample"))
  }
case class ItemWithDef( a:Int, b:DefVal )

test("default") {
  assert("""{ "a": 1 }"""
    .jsonAs[ItemWithDef] == Right(ItemWithDef(1,DefVal("sample"))))
}
Companion:
object
Companion:
class
trait FromJson[T]

Получение объекта определенного типа из Json

Получение объекта определенного типа из Json

см FromJsonBuilder

Companion:
object
object FromJson
Companion:
class

Создание FromJson

Создание FromJson

Пример

sealed trait BaseSample
case class ChildOne( a:Int ) extends BaseSample
case class ChildTwo( a:String ) extends BaseSample

import xyz.cofe.json4s3.derv.FromJsonBuilder._
implicit val baseSampleFromJson : FromJson[BaseSample] =
 FromJson.builder
   .select[ChildOne]( q => q("type").string === "1" )
   .select[ChildTwo]( q => q("type").string === "2" )
   .build
object OptionExt
trait ToJson[T]

Декодирование Scala структуры в Json

Декодирование Scala структуры в Json

Companion:
object
object ToJson
Companion:
class
object std extends StringImplToJson with BigNumFromJson

Value members

Concrete methods

inline def isOptionals[A <: Tuple]: List[Boolean]
inline def labelFromMirror[A](using m: Of[A]): String
inline def labelsFrom[A <: Tuple]: List[String]
inline def labelsOf[A](using m: Of[A]): List[String]
inline def summonAllDefaultValue[T <: Tuple]: List[DefaultValue[_]]
inline def summonAllFromJson[T <: Tuple]: List[FromJson[_]]
inline def summonAllToJson[T <: Tuple]: List[ToJson[_]]

Extensions

Extensions

extension [A](item: A)
def asJson(implicit evidence$2: ToJson[A], formatting: FormattingJson): Option[AST]
def json(implicit evidence$3: ToJson[A], formatting: FormattingJson): String
extension (string: String)
def jsonAs[A : FromJson]: Either[DervError, A]