手順5: カテゴリーレシピ: matchListパラメーター
カテゴリーレシピの構成を続行して、matchList
パラメーターとkeyDataType
パラメーターを設定しましょう。
matchListパラメーター
matchList
パラメーターの目的は、カテゴリーのクエリ結果から特定のプロパティを選択し、それらをFire App Builderのコンテンツモデルにマッピングすることです。
matchList
で使用される構文は、Jayway JsonPath式でもXPath式でもなく、クエリ結果内の特定の要素をターゲットとするFire App Builderのカスタム構文です(したがって、ここではJSONとXMLの手順が同じセクションにまとめられています)。Fire App Builderのサンプルアプリでは、カテゴリーレシピの値はStringKey@mName
になっています。
この構文の構成を見ていきましょう。@
記号の左側には、クエリ結果内でターゲットにするプロパティを指定します(StringKey
は文字列のリストを選択します)。@
記号の右側には、プロパティのマッピング先となるFire App Builder要素(mName
)を指定します。
カテゴリーレシピでは、matchList
パラメーターによってフィードのカテゴリーをmName
にマッピングする必要があります。
Fire App Builderのサンプルアプリでは、クエリ結果が文字列のリストであるため、StringKey
を使用して文字列とマッチさせます。
たとえば、結果が次のような文字列のリストであるとします。
Text='テクノロジー'
Text='ガジェット'
このテキストコンテンツをマッチさせて、Fire App BuilderのUIのカテゴリー要素にマッピングするには、次の構文を使用します。
StringKey@mName
別の例として、クエリ結果が次のようになっているとします。
<list>
<title>マイカテゴリータイトル</title>
</list>
この場合は、カテゴリーのタイトルを次のようにマッピングします。
/list/title@mName
スラッシュ(/
)は、XMLノードを1レベル下に移動します。</div></div></div>
クエリの結果セットに含まれているのが、単なる文字列のリストではなく、次のようなJSONオブジェクトであるとします。
"list": { "title" : "マイカテゴリータイトル" }
「マイカテゴリータイトル
」をマッチさせてmName
に変換するには、次の構文を使用します。
list/title@mName
より深いオブジェクトレベルに移動するには、スラッシュ(/
)を使用します(XPathと同様です)。この例では、list
はルートの1階層下のオブジェクトで、title
はそのさらに1階層下のオブジェクトです。この2つのレベルを通過した先がカテゴリー名になります。
keyDataTypeパラメーター
Fire App Builderには、選択したカテゴリーを使用してグループ化するメディアアイテムはどれかを知らせる必要があります。keyDataType
パラメーターは、カテゴリーに関連のあるメディアアイテムを識別します。このパラメーターはカテゴリーレシピで使用され、後でコンテンツレシピの変数に渡されます。
Fire App Builderのクエリ結果は文字列のリストであるため、StringKey@keyDataPath
を使用してメディアアイテムをターゲットにし、カテゴリーに関連付けます。結果が同じように文字列のリストであれば、次のデフォルトを使用できます。
"keyDataType": "StringKey@keyDataPath"
ただし、次のように、container
ノードの内部にassets
ノードが入れ子になっていて、さらにその内部にメディアオブジェクトがあるとします。
"container": {
"assets": [
"5825652561001",
"5825652558001",
"5825652569001",
"5873045223001",
]
}
または、次の構造も同様です。
<container>
<assets>
<id>5825652561001</id>
<id>5825652558001</id>
<id>5825652569001</id>
<id>5873045223001</id>
</assets>
</container>
この場合にメディアオブジェクトを取得するには、次のような構文を記述します。
container/assets@keyDataPath
matchList
パラメーターと同様に、keyDataType
クエリでもJayway JsonPath構文は使用しません。代わりに、ノード名の後に/
を記述して次のレベルに移動することで各ノードを照合します。container/assets
は、このレベルのすべてのアイテムを照合します。
アットマーク@
の右側のkeyDataPath
は、これらのメディアオブジェクトがFire App Builderでどのように格納され、使用されるかを示します。@keyDataPath
により、アイテムをFire App Builderのコンテンツモデルとマッチさせることができます。
次のステップ
これでカテゴリーレシピの構成が完了しました。次はコンテンツレシピを構成します。手順6: コンテンツレシピをセットアップするを参照してください。