Show Menu
主題×

為元件啟用JSON匯出

元件可以根據建模器架構來產生其內容的JSON匯出。

概覽

JSON Export是以 Sling Models ,以及 Sling Model Exporter framework(本身需仰賴 Jackson註解 )為基礎。
這表示如果元件需要匯出JSON,它必須有Sling Model。 因此,您必須依照這兩個步驟,在任何元件上啟用JSON匯出。

為元件定義Sling模型

首先,必須為元件定義Sling Model。
如需使用Sling Models的範例,請參閱 Developing Sling Model Exporers in AEM
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 面。
Jackson註解通常不會在Sling Model類別層級指定,而是在Model介面層級指定。 這是為了確保JSON匯出被視為元件API的一部分。
ExporterConstants ComponentExporter 課程和課 com.adobe.cq.export.json 程。

註解Sling Model Interface

若要讓JSON匯出器架構考慮,Model介面應實 ComponentExporter 作介面( ContainerExporter 若是容器元件)。
然後,對應的Sling Model介面( MyComponent )會使用 Jackson Annotations加上註解 ,以定義如何匯出(序列化)。
Model介面需要正確加上註解,以定義應序列化哪些方法。 依預設,所有遵循getter通常命名慣例的方法都會序列化,並會自然從getter名稱衍生其JSON屬性名稱。 使用或重新命名JSON屬性 @JsonIgnore 時, @JsonProperty 可防止或覆寫此動作。

例如

核心元件自核心元件發行 1.1.0版起就支援JSON匯出 ,可當做參考。
如需範例,請參閱Image Core Component及其註解介面的Sling Model實作。
GITHUB代碼
您可以在GitHub上找到此頁面的程式碼