skema

CompactSerializer

open class CompactSerializer<T : Any>(val serialName: String, base: KClass<T>, catalog: JsonNodeCatalog = JsonNodeCatalog(), nodes: () -> List<JsonNode>) : KSerializer<T> (source)

Compact JSON form, sealed form elsewhere. Needs polymorphic discriminators and no naming strategy.

Constructors

CompactSerializer

constructor(serialName: String, base: KClass<T>, catalog: JsonNodeCatalog = JsonNodeCatalog(), nodes: () -> List<JsonNode>)(source)

Properties

descriptor

open override val descriptor: SerialDescriptor(source)

nodes

Lazy, for recursive vocabularies.

serialName

Shared with the sealed fallback.

Functions

deserialize

open override fun deserialize(decoder: Decoder): T(source)

selectNode

fun selectNode(element: JsonElement): JsonNode(source)

Matches names strictly; uses the catalog resolver on ambiguity.

serialize

open override fun serialize(encoder: Encoder, value: T)(source)
Link copied to clipboard
fun CompactSerializer<*>.toJsonSchema(json: Json = SchemaJson): JsonObject

JSON Schema (draft 2020-12) for this vocabulary's compact form.

fun KSerializer<*>.toJsonSchema(catalog: JsonNodeCatalog, json: Json = SchemaJson): JsonObject

JSON Schema (draft 2020-12); catalog must list every compact vocabulary reached.