Zum Inhalt springen
Anjunar/ DOCS

API

Alles, was ein Aufrufer berührt: die zwei Operationen von JsonMapper, ihre Callbacks und die Annotationen und Traits, die der Mapper liest.

JsonMapper

Zwei Operationen

Beide nehmen die ResolvedClass des Werts aus TypeResolver.resolve und einen optionalen EntityGraph (null für keinen).

serialize(instance, resolvedClass, graph, inject): String
Das Objekt als kompakter JSON-Text.
deserialize(jsonNode, instance, resolvedClass, graph, loader, inject, validator): Any
Schreibt das JSON in instance und gibt es zurück; wirft ErrorRequestException mit allen Verstößen.
JsonParser.parse(json: String): JsonNode
Parst Text in die JSON-Knoten des Mappers.
JsonGenerator.generate(node: JsonNode): String
Schreibt Knoten zurück in Text.
Callbacks

Was die Anwendung liefert

Der Mapper hat keinen eigenen Container. Alles, was er von der Anwendung braucht, kommt als Funktion oder Trait.

inject: [T] => Class[T] => T
Erzeugt Regeln und andere Hilfsobjekte; verbinde es mit deinem DI-Container.
EntityLoader.load(id: UUID, clazz: Class[?]): Any
Löst eine Referenz per ID auf; null, wenn unbekannt.
jakarta.validation.Validator
Prüft jeden Wert, bevor er gesetzt wird.
Modell

Annotationen und Traits

Was eine Klasse deklariert, um teilzunehmen.

@JsonbProperty
Nimmt ein Feld oder einen Getter auf; ein optionaler Wert benennt um.
@JsonbAnyProperty
Eine Map, die nicht deklarierte Felder sammelt.
@JsonbGraphProperty(transitive)
transitive = true nimmt die Property unabhängig vom Graphen auf.
@UseConverter(classOf[C])
Schreibt und liest den Wert über einen Konverter.
DTO
Kennzeichnet ein Objekt, in das der Mapper hinabsteigt.
EntityProvider
id und version; schaltet Graphen und ID-Abgleich frei.
SchemaProvider[S] · EntitySchema[T]
Listet die gezeigten Properties und ihre Regeln.