SXAデータモデリングの導入
このページの翻訳はAIによって自動的に行われました。可能な限り正確な翻訳を心掛けていますが、原文と異なる表現や解釈が含まれる場合があります。正確で公式な情報については、必ず英語の原文をご参照ください。
SXAはデータをJSON(JavaScriptオブジェクト表記)でモデリングすることを可能にします。例えば、モバイルアプリを作成しSXAのコンテンツを入力したい場合、ページのJSONコンテンツを編集し、出力内容をHTMLではなくJSONで設定できます。

JSON機能はSXAコンテンツにアクセスするJSON APIを提供します。サイトのコンテンツはJSON形式のウェブサービスAPIを通じてアクセス可能です。
SXAデータモデリングを有効にする
デフォルトでは、JSON機能はテナントやサイトに追加されます。「 テナント作成 」と 「新しいエクスペリエンスアクセラレーター作成」のサイト ウィザードの両方でJSON機能が選択されています。

JSONレンダリングの作業を始める前に、まずJSONデバイスに切り替える必要があります。
JSONレイアウト
SXA JSONデバイスは別のレイアウトを使用し、JSONレイアウトフォルダ(sitecore/Layout/Feature/Experience Accelerator/JSON Layout)に保存されています。エクスペリエンスエディターでJSONデバイスに切り替えると、JSONレイアウトを使用していることがわかります。

JSONレンダリング
JSONレイアウトを作成するために使える特別なレンダリングがあります。これらのレンダリングはsitecore/Tenant/Site/Presentation/Available Renderings/JSONに保存されています。箱から出して、利用可能なJSONレンダリングは3つあります:
- JSON Content – JSONレンダリングやJSONバリアントを使ってページのフィールドを表示します。
- JSONリスト – 事前定義または合成されたクエリによるページリストを表示します。
- JSON Results – 検索クエリの結果を表示します。
JSONバリエーション
JSONレンダリングの追加フィールドをサポートするには、JSONバリアントを作成できます。JSONバリアントはJSONレンダリングのグループ項目(例
/Tenant/Site/Presentation/Rendering Variants/JSON content)に保存されます。表示するフィールドを定義するには、レンダリングバリアントに子アイテムを追加できます。これを行うには、バリアントを右クリックし、「 挿入」をクリックし、該当するアイテムをクリックします。
以下の子項目をJSONバリアントに追加できます:
- JSON Checkbox – Checkbox型のフィールドの値を異なるモードでレンダリングする特別なJSONバリアントフィールドです。
- JSON Date – 日付と時刻をカスタム形式で表示します。
- JSONフィールド – HTMLでフィールドをレンダリングします。
- JSONファイル – ファイルフィールドのJSONバージョンで、ファイルへのリンクを出力します。
- JSON Image – Image型のフィールドの値を異なるモードでレンダリングする、専門的なJSONバリアントフィールドです。
- JSON マルチリスト参照 – マルチリスト派生フィールドで定義された参照を列挙する特別なJSONフィールド値。子項目を使って何をレンダリングするかを決定します。例えば、すべてのページとそのタイトルを一覧化します。
- JSON Placeholder – 例えば、JSON コンテンツレンダリング内でJSONリストを読み込むためのプレースホルダーを提供します。
- JSON Reference – リンクされたアイテムからコンテンツをレンダリングできます。 PassThroughField フィールドで参照として使いたいフィールドを定義します。このバリアントフィールドは、以下のフィールドに使えます: LinkField (GeneralLink, DropLink)、 FileField (File)、 ImageField (画像)、 ReferenceField (Droptree)。参照項目には子項目として他のJSONレンダリング項目を含める必要があります。これは、レンダリング済みアイテムからリンクされたアイテムを持ち、その項目からフィールドを表示したい場合に便利です。Variant詳細セクションに名前を追加することで、追加のJSONオブジェクトを作成できます。
- JSON セクション – フィールドのグループ化に使用されます。このレンダラーには 、Name (子レンダラーのラッピング要素を作成するための)などのフィールドが含まれています。セクションアイテムをネストして、より複雑なバリアント構造を作ることもできます。
- JSON Text – テキストを表示し、例えば説明文などのカスタム文字列をレンダリングするために使われます。以下のフィールドを使用できます: Name (テキストのプロパティ名を定義)、 Text (レンダリングするテキストを含む)。
- JSON トークン – SXA 以下のトークンをサポートしています:$id(アイテムのIDをレンダリング)、$size(付随するアセットのサイズをフォーマット)、$name(アイテム名をレンダリング)、$FileTypeIcon(CSSクラスがファイル拡張子と等しいスパンをレンダリング)。カスタム resolveVariantTokens パイプラインはバリアントトークンのセットを拡張するために使われます。
- JSONリッチテキスト – JSONコンポーネント内のリッチテキストフィールドを表示します。フィールドは提供されたモードのいずれかでレンダリングできます(例えば、出力前にHTMLタグを除去するためにクリーンアップすることも可能です)。
追加するアイテムによって、異なるフィールドを設定できます:
フィールド
概要
モード
レンダリングバリアントの子項目によって、モードフィールドは異なるビューに設定できます:
- Raw – 生のSitecore値、フォーマットされていないデータをレンダリングします。
- テキスト – テキストをレンダリングします。
- Rendered – フィールドレンダラーを使って値をレンダリングします。
- プレー ン – アイテムをプレーンテキストとして表示します。
- パス – アイテムの経路をレンダリングします。
- Guid – Sitecoreでアイテムのグローバルに一意な識別子を表示します。
真の価値
真としてレンダリングされる値を決定します。
偽の価値
偽としてレンダリングされる値を決定します。
名称
JSONプロパティ名を上書きします。 JSON参照 フィールドに名前を追加することで、追加のオブジェクトを作成できます。
フィールド名
フィールドの現在の項目名。
パススルーフィールド
別のアイテムへのリンクを格納するフィールド名を定義します。例えば、リンクのような単純な参照や、ツリーリストのような多重参照フィールドなどです。
日付形式
ドロップダウンリストから日付形式を選択してください。
本文
レンダリングするテキスト。
トークン
特定のフィールド値をフォーマットするために特別なトークンを使用します。以下のトークンがサポートされています:
- $Size – はサイズ単位に応じてファイルのサイズを表示します。
- $FileTypeIcon – ファイル拡張子に応じてアイコンが表示されます。