コンポーネントの JSON エクスポートを有効にする enabling-json-export-for-a-component
モデラーフレームワークに基づいてコンテンツの JSON 書き出しを生成するように、コンポーネントを適応させることができます。
概要 overview
JSON の書き出しは、Sling Models と、Sling Model Exporter フレームワーク(それ自体は Jackson 注釈 に依存)に基づいて行われます。
つまり、JSON を書き出す必要がある場合、コンポーネントには Sling モデルが必要です。 したがって、次の 2 つの手順に従って、任意のコンポーネントで JSON 書き出しを有効にします。
コンポーネントに Sling Model を定義する define-a-sling-model-for-the-component
まず、コンポーネントの Sling モデルを定義する必要があります。
Sling Model の実装クラスに次のような注釈を付ける必要があります。
@Model(... adapters = {..., ComponentExporter.class})
@Exporter(name = ExporterConstants.SLING_MODEL_EXPORTER_NAME, extensions = ExporterConstants.SLING_MODEL_EXTENSION)
@JsonSerialize(as = MyComponent.class)
これにより、コンポー .model ントセレクターと .json 拡張機能を使用して、コンポーネントを独自に書き出すことができます。
さらに、Sling Model クラスを ComponentExporter インターフェイスに適応させることができるかどうかを指定します。
ExporterConstants クラスと ComponentExporter クラスは com.adobe.cq.export.json バンドルから取得されます。複数のセレクターを使用 multiple-selectors
標準的なユースケースではありませんが、model セレクターに加えて複数のセレクターを設定することができます。
https://<server>:<port>/content/page.model.selector1.selector2.json
ただし、この場合 model セレクターは最初のセレクターで、拡張子は .json にする必要があります。
Sling Model インターフェイスに注釈を付ける annotate-the-sling-model-interface
JSON エクスポーターフレームワークでこれを処理するには、モデルインターフェイスに ComponentExporter インターフェイス(またはコンテナコンポーネントの ContainerExporter)を実装する必要があります。
対応する Sling モデルインターフェイス(MyComponent)には、Jackson 注釈を使用して注釈が付けられ、どのように書き出し(シリアル化)が行われるかが定義されます。
シリアル化するメソッドを定義するには、Model インターフェイスに適切な注釈を付ける必要があります。 デフォルトでは、ゲッターの通常の命名規則に従うすべてのメソッドはシリアル化され、JSON プロパティ名がゲッター名から自然に派生します。 この方法は、@JsonIgnore または @JsonProperty を使用して、JSON プロパティの名前を変更することで、防止または上書きできます。
例 example
コアコンポーネントは、リリース 1.1.0 以降、JSON 書き出しをサポートしており、参照として使用できます。
例えば、画像コアコンポーネントの Sling Model 実装とその注釈されたインターフェイスを参照してください。
GitHub のコード
このページのコードは GitHub にあります
- GitHub の aem-core-wcm-components プロジェクトを開きます
- プロジェクトを ZIP ファイルとしてダウンロードします