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.