次の方法で共有


配列をオブジェクトに変換 (プレビュー)

テンプレート ID: convertarraytoobject

本文の配列を、ユーザー指定のキーで識別される要素を持つ JSON オブジェクトに変換します。 このテンプレートは Power Apps と Power Automate で利用可能です。

まず、親オブジェクトまたはコレクションへのパスと、配列が配置されている親内のプロパティ サブパスを指定します。 次に、配列の各項目内のプロパティをオブジェクト キーとして指定します。 このようなキーの存在は、オブジェクト キーが一意である必要があり、そのオブジェクト キーが値の一部となる残りのプロパティを説明することが期待されるため、変換が意味をなすために必要です。 最後に、新しいオブジェクトのプロパティが書き込まれるパスを指定します。

留意すべきいくつかの点は次のとおりです。

  • 親が変換する配列である場合は、サブパスを空のままにしておくことができます。
  • 既存の配列を上書きするには、パスは以前に指定された親パスとプロパティ サブパスになります。
  • 指定したオブジェクト キーを新しいオブジェクト内のプロパティとして保持するには、[キーを保持] オプションを [true] (空のままにした場合のデフォルト) に設定します。 それ以外の場合は、オプションを [無効] に設定します。

次のパラメーターを使用する例をいくつか見てみましょう。

例 1

入力 JSON:

    {
        "peopleArray":[
            {
               "Name": "XYZ",
               "Age": "30"
            },
            {
               "Name": "ABC",
               "Age": "23"
            }
        ]
    }
入力パラメーター
propertyParentPath@body()
propertySubPathpeopleArray
keyWithinCollectionPath件名
newPropertyPathpeopleObject
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
propertySubPathpeople
keyWithinCollectionPath件名
newPropertyPathpeople
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 配列 ポリシーが適用されるアクションとトリガーのリスト。 操作が選択されていない場合、このポリシーはすべての操作に適用されます。