テンプレート ID: convertarraytoobject
本文の配列を、ユーザー指定のキーで識別される要素を持つ JSON オブジェクトに変換します。 このテンプレートは Power Apps と Power Automate で利用可能です。
まず、親オブジェクトまたはコレクションへのパスと、配列が配置されている親内のプロパティ サブパスを指定します。 次に、配列の各項目内のプロパティをオブジェクト キーとして指定します。 このようなキーの存在は、オブジェクト キーが一意である必要があり、そのオブジェクト キーが値の一部となる残りのプロパティを説明することが期待されるため、変換が意味をなすために必要です。 最後に、新しいオブジェクトのプロパティが書き込まれるパスを指定します。
留意すべきいくつかの点は次のとおりです。
- 親が変換する配列である場合は、サブパスを空のままにしておくことができます。
- 既存の配列を上書きするには、パスは以前に指定された親パスとプロパティ サブパスになります。
- 指定したオブジェクト キーを新しいオブジェクト内のプロパティとして保持するには、[キーを保持] オプションを [true] (空のままにした場合のデフォルト) に設定します。 それ以外の場合は、オプションを [無効] に設定します。
例
次のパラメーターを使用する例をいくつか見てみましょう。
例 1
入力 JSON:
{
"peopleArray":[
{
"Name": "XYZ",
"Age": "30"
},
{
"Name": "ABC",
"Age": "23"
}
]
}
入力パラメーター | 値 |
propertyParentPath | @body() |
propertySubPath | peopleArray |
keyWithinCollectionPath | 件名 |
newPropertyPath | peopleObject |
retainKey | 偽 |
出力 JSON:
{
"peopleArray":[
{
"Name": "XYZ",
"Age": "30"
},
{
"Name": "ABC",
"Age": "23"
}
],
"peopleObject":{
"XYZ":{
"Age": "30"
},
"ABC":{
"Age": "23"
}
}
}
例 2
入力 JSON
{
"sets":[
{
"people":[
{
"Name": "XYZ",
"Age": "30"
},
{
"Name": "ABC",
"Age": "23"
}
]
},
{
"people":[
{
"Name": "PQR",
"Age": "32"
},
{
"Name": "MNO",
"Age": "26"
}
]
}
]
}
入力パラメーター | 値 |
propertyParentPath | @body().sets |
propertySubPath | people |
keyWithinCollectionPath | 件名 |
newPropertyPath | people |
retainKey | 正 |
出力 JSON:
{
"sets":[
{
"people":{
"XYZ":{
"Name": "XYZ",
"Age": "30"
},
"ABC":{
"Name": "ABC",
"Age": "23"
}
}
},
{
"people":{
"PQR":{
"Name": "PQR",
"Age": "32"
},
"MNO":{
"Name": "MNO",
"Age": "26"
}
}
}
]
}
親 sets
はコレクションであるため、この変換は各 subPath people
に適用され、また retainKey が true に設定されているため、キー Name
が保持されますのでご注意ください。
オープン ソース コネクタからの例
このテンプレートの 1 つのインスタンスがオープン ソース コネクタ リポジトリで使用されます。
コネクタ | シナリオ |
Planner | 参照の配列を、ID がタスク詳細の更新アクションのリクエスト キーであるオブジェクトに変換します。 |
入力パラメーター
名称 | キー | 必須 | 型 | 内容 |
---|---|---|---|---|
Target object or collection path |
x-ms-apimTemplateParameter.propertyParentPath | 真 | String | オブジェクトまたはコレクションへのパス。 |
Property subpath |
x-ms-apimTemplateParameter.propertySubPath | String | 親オブジェクトまたはコレクション内のプロパティ サブパス。 | |
Path to object key within the array |
x-ms-apimTemplateParameter.keyWithinCollectionPath | 真 | String | 配列の各項目内のキーへのサブパス。 |
Path of the new property |
x-ms-apimTemplateParameter.newPropertyPath | 真 | String | 新しいプロパティのパス。 |
Retain key |
x-ms-apimTemplateParameter.retainKey | 列挙 | プロパティとしてキーを保持します。 - 有効 - 無効 |
|
Run policy on |
x-ms-apimTemplate-policySection | 真 | 列挙 | このポリシーをいつ実行するかを指定します - 要求 : ポリシー テンプレートは、要求がバックエンド API に送信される前に実行されます。 - 応答 : ポリシーは、バックエンド API から応答を受信した後に実行されます。 |
Operations |
x-ms-apimTemplate-operationName | 配列 | ポリシーが適用されるアクションとトリガーのリスト。 操作が選択されていない場合、このポリシーはすべての操作に適用されます。 |