為元件啟用 JSON 匯出

元件可調整為根據模型程式框架產生其內容的JSON匯出。

概觀

JSON匯出是根據 Sling模型,並在上 Sling模型匯出工具 框架(本身需仰賴 Jackson附註)。

這表示元件必須匯出JSON,則必須有Sling模型。 因此,請依照這兩個步驟操作,以啟用任何元件的JSON匯出。

為元件定義Sling模型

首先,必須為元件定義Sling模型。

注意

如需使用Sling模型的範例,請參閱 在AEM中開發Sling模型匯出工具.

Sling模型實作類別必須使用下列專案註釋:

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

這可確保您的元件可自行匯出,使用 .model 選擇器和 .json 副檔名。

此外,這會指定Sling模型類別可以改編為 ComponentExporter 介面。

注意

Jackson註解不是在Sling模型類別層級指定的,而是在Model介面層級指定的。 這是為了確保將JSON匯出視為元件API的一部分。

注意

ExporterConstantsComponentExporter 類別來自 com.adobe.cq.export.json 套件組合。

使用多個選擇器

雖然這不是標準使用案例,但除了以下設定外,您也可以設定多個選取器: model 選擇器。

https://<server>:<port>/content/page.model.selector1.selector2.json

但在這種情況下, model 選擇器必須是第一個選擇器,而擴充功能必須是 .json.

註釋Sling模型介面

若要JSON匯出工具架構列入考量,模型介面應實作 ComponentExporter 介面(或 ContainerExporter,如果有容器元件)。

對應的Sling模型介面( MyComponent)之後會使用進行註解 Jackson附註 以定義應如何匯出(序列化)。

必須正確註解模型介面,以定義應序列化哪些方法。 依預設,所有遵守getter一般命名慣例的方法都會序列化,並從getter名稱自然衍生其JSON屬性名稱。 這可以使用防止或覆寫 @JsonIgnore@JsonProperty 重新命名JSON屬性。

範例

核心元件自發行以來皆支援JSON匯出 核心元件的1.1.0 和可作為參考。

如需範例,請參閱影像核心元件的Sling模型實作及其附註介面。

GITHUB上的程式碼

您可以在GitHub上找到此頁面的程式碼

如需詳細資訊,請參閱下列內容:

本頁內容