この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

CMS Connect (JSON) 式

コンテンツを再利用すると、時間と労力を節約できます。CMS Connect (JSON) コンポーネントの JSON 式を定義することで、既存のコンテンツをサイトページに対応付けることができます。

サイトページにコンポーネントを配置するときに、JSON 式を使用してそのプロパティを指定します。たとえば、ブログ記事内で対応付けている場合、CMS からブログの ID、タイトル、著者、コンテンツを取得する式を定義できます。

この JSON 構造をコンテンツソースとして使用した例を見てみましょう。この JSON レスポンスボディの例は、Drupal CMS からのものです。

CMS 接続を設定するには、コンテンツ項目 (ブログなど) またはコンテンツリスト (ブログシリーズ) を作成します。コンポーネントをページに追加するときに、JSON 式を入力してそのプロパティを定義します。

たとえば、タイトルを取得するために、式 @data/attributes/title でサンプル JSON リソースから「DIY Dryer Vent Cleaning (DIY: ドライヤーの排気口の掃除)」を取得します。@ 記号は、テキストがタイトル要素を参照する JSON 式を表すことを示します。

コンポーネントプロパティの JSON 式を入力

基本的な JSON 式

CMS JSON 接続の場合、式の構文は RFC 6901 の JSON ポインタ仕様に従います。サンプルコンテンツソースの場合、親ノード @data は最上位のソースコンテンツへのポインタです。ネストされた要素にアクセスするには、単にパスを指定します。たとえば、式 @data/attributes/body/value はブログコンテンツを参照します。

配列内の値にアクセスする場合、開始インデックス値は 0 です。単純な配列を含む JSON ソースの例を次に示します。

このソースを使用すると、左側の式で右側の出力が生成されます。

式の例 出力
@/array/0/key 1
@/array/1/key 2
@/array/1/dictionary/a "Appliance"

JSON 式での関数の使用

wherelookupconcat 関数を使用して、より複雑な式を作成できます。where 関数を使用して、配列要素を絞り込みます。この関数は、演算子 'eq' (次の文字列と一致する)、'ne' (次の文字列と一致しない)、'lt' (<)、'gt' (>)、'le' (以下)、または 'ge' (以上) を使用して 2 つの値を比較します。

式の例 出力
@/array[where(key,'eq',2)]/0/dictionary/b "Breaker"
@/array[where(key,'eq',2)][where(var,'eq',3)]/0/dictionary/d "Dryer"

最初の例では、where 式は配列を絞り込んで、キーの値が「2」と一致する場所を見つけます。2 番目の例では、2 つの where 関数を使用しています。目的の配列要素を見つけるには、両方の条件が満たされている必要があります。

lookup 関数は、JSON ドキュメントを検索するときに役立ちます。少なくとも 3 つのパラメータを取ります。
  • 開始ノード
  • 開始ノード内を調べるためのキー
  • キーと照合する文字列または数値
たとえば、JSON ソースで著者 ID またはキーが特定の値と一致するインスタンスを検索できます。
式の例 出力
@lookup(/array,key,2)/0/var 3
@lookup(/array,key,1)/0/dictionary/a "Air gap"
@lookup(/array,key,2)/0/dictionary/a "Appliance"

concat 関数は、指定した文字列とパラメータを連結します。式 @concat('DIY Focus', ': ', 'about your ' , /array/1/dictionary/d) では "DIY Focus: about your Dryer" が出力されます。CMS で、姓要素と名要素を使用して配列内に著者名を保存している場合、著者の氏名を出力するには、@concat(author/first_name,' ',author/last_name) などの式を使用します。

補足情報

JSON 式を作成するときは、次の点に留意してください。

  • 文字列は一重引用符で囲みます。たとえば、式に文字列 hello を含めるには @'hello' と指定します。文字列に @ 文字を含めるには、'myname@gmail.com' のように一重引用符で囲みます。
  • Boolean 値を示すには、true または false を使用します。値 true は Boolean ですが、'true' は文字列です。
  • 同階層にはピリオド (.) を使用し、親には 2 つのピリオド (..) を使用して、現在のコンテキストに相対的な同階層または親要素を指定します。たとえば、タイトルで検索するには、@data/attributes/title/../id を指定して、タイトルに対応する ID を取得します。
  • バックスラッシュ文字 (\) をエスケープ文字として使用します。たとえば、@/author/name は author 要素の下位の name を検索しますが、@/author\/name は author/name をキーとして検索します。

エラーのシナリオ

間違いはときどき起こります。JSON 式が正しくない場合に考えられるエラーメッセージのいくつかを次に示します。

  • エクスペリエンスビルダーのプロパティエディタに無効な JSON パスを入力する。たとえば、著者の JSON 式を @author/name ではなく @author/invalid として入力すると、次のようなエラーメッセージが表示されます。

    エラーメッセージの例

  • 期待値が 1 つのみの場合に複数の値を返す式を入力する。たとえば、著者の JSON 式を @author/name ではなく @author として入力すると、次のエラーメッセージが表示されます。

    エラーメッセージの例

  • CMS 接続のコンテンツリストまたは接続の詳細を作成するときに、無効な URL パスを指定する。問題に応じて、HTTP エラー (HTTP 0 エラーや HTTP 404 エラーなど) または次のようなエラーが表示されます。CMS 接続の設定を確認します。

    エラーメッセージの例