Sie sehen sich Hilfeinhalte der folgenden Version an:

Komponenten können angepasst werden, um einen JSON-Export ihrer Inhalte basierend auf einem Modeler-Framework zu generieren.

Hinweis:

Die JSON-Export-Funktion für Komponenten ist als Teil des Content Services-Feature Packs verfügbar.

Überblick

Der JSON-Export basiert auf Sling-Modellen und auf dem Framework des Sling-Modell-Exporters (der sich wiederum auf Jackson-Anmerkungen stützt).

Das bedeutet, dass die Komponente über ein Sling-Modell verfügen muss, wenn JSON exportiert werden soll. Deshalb müssen Sie diese beiden Schritte befolgen, um einen JSON-Export für eine beliebige Komponente zu aktivieren.

Definieren eines Sling-Modells für die Komponente

Zunächst muss ein Sling-Modell für die Komponente definiert werden.

Hinweis:

Ein Beispiel für die Verwendung von Sling-Modellen finden Sie im Artikel Entwickeln von Sling-Modell-Exportern in AEM.

Die Implementierungsklasse des Sling-Modells muss wie folgt kommentiert werden:

@Model(... adapters = {..., ComponentExporter.class})
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
@JsonSerialize(as = MyComponent.class)

Dadurch wird sichergestellt, dass Ihre Komponente mit dem .model-Selektor und dem Anhang .json eigenständig exportiert werden kann.

Außerdem kann die Sling-Modell-Klasse dadurch in der ComponentExporter-Oberfläche übernommen werden.

Hinweis:

Jackson-Anmerkungen werden in der Regel nicht auf der Ebene der Sling-Modell-Klasse festgelegt, sondern auf der Ebene der Modell-Oberfläche. Damit wird sichergestellt, dass der JSON-Export als Teil der Komponenten-API gewertet wird.

Hinweis:

Die Klassen ExporterConstants und ComponentExporter stammen aus dem com.adobe.cq.export.json-Paket.

Anmerkungen für die Sling-Modell-Oberfläche

Damit sie im JSON-Exporter-Framework beachtet wird, sollte die ComponentExporter-Oberfläche (oder ContainerExporter bei Container-Komponenten) in der Modell-Oberfläche implementiert werden.

Für die entsprechende Sling-Modell-Oberfläche (MyComponent) wird in diesem Fall über Jackson-Anmerkungen definiert, wie sie exportiert (serialisiert) werden soll.

Es müssen die richtigen Anmerkungen für die Modell-Oberfläche angewendet werden, um zu definieren, welche Methoden serialisiert werden sollen. Standardmäßig werden alle Methoden serialisiert, die die gängigen Benennungskonventionen für Abfragemethoden einhalten. Ihre JSON-Eigenschaftsnamen werden dabei naturgemäß von den Namen der Abfragemethode abgeleitet. Um dies zu vermeiden bzw. zu überschreiben, benennen Sie die JSON-Eigenschaft mit @JsonIgnore oder @JsonProperty um.

Beispiel

Die Kernkomponenten unterstützen den JSON-Export seit der Version 1.1.0 der Kernkomponenten. Sie können als Referenz verwendet werden.

Ein Beispiel ist die Sling-Modell-Implementierung der Bild-Kernkomponente und deren kommentierte Oberfläche.

CODE AUF GITHUB

Den Code dieser Seite finden Sie auf GitHub

Verwandte Dokumentation

Dieses Werk unterliegt den Bedingungen der Creative Commons Attribution-Noncommercial-Share Alike 3.0 Unported License.  Twitter™- und Facebook-Beiträge fallen nicht unter die Bedingungen der Creative Commons-Lizenz.

Rechtliche Hinweise   |   Online-Datenschutzrichtlinie