Udostępnij za pośrednictwem


Konwertowanie tablicy na obiekt (wersja zapoznawcza)

Identyfikator szablonu: convertarraytoobject

Konwertuje tablicę w treści na obiekt JSON zawierający elementy identyfikowane przez klucz określony przez użytkownika. Ten szablon jest dostępny w Power Apps i Power Automate.

Aby rozpocząć, należy określić ścieżkę do obiektu nadrzędnego lub kolekcji oraz ścieżkę podrzędnej właściwości w obrębie elementu nadrzędnego, w którym znajduje się tablica. Następnie jako klucz obiektu należy określić właściwość w obrębie poszczególnych elementów tablicy. Istnienie takiego klucza jest konieczne, aby transformacja miała sens, ponieważ klucze obiektowe powinny być unikalne i oczekuje się, że klucz obiektowy wyjaśni resztę właściwości, które staną się częścią wartości. Na koniec określ ścieżkę, do której będzie pisana nowa właściwość obiektu.

Rzeczy, o których należy pamiętać:

  • Ścieżka podrzędna może pozostać pusta, jeśli element nadrzędny jest macierzą, którą chcesz przekształcić.
  • W celu zastąpienia istniejącej tablicy należy podać uprzednio określoną ścieżkę nadrzędną i ścieżkę podrzędną właściwości subPath.
  • Aby zachować określony klucz obiektu jako właściwość w nowym obiekcie, ustaw opcję „Zachowaj klucz” na „true” (która jest domyślna, jeśli pozostanie pusta). W przeciwnym razie należy ustawić opcję na „fałsz”.

Przykłady

Przyjrzyjmy się kilku przykładom, które używają następujących parametrów.

Przykład 1

Dane wejściowe JSON:

    {
        "peopleArray":[
            {
               "Name": "XYZ",
               "Age": "30"
            },
            {
               "Name": "ABC",
               "Age": "23"
            }
        ]
    }
Parametr wejściowy Wartość
propertyParentPath@body()
propertySubPathpeopleArray
keyWithinCollectionPathNazwa/nazwisko
newPropertyPathpeopleObject
retainKeyfałsz

Dane wyjściowe JSON:

    {
        "peopleArray":[
            {
               "Name": "XYZ",
               "Age": "30"
            },
            {
               "Name": "ABC",
               "Age": "23"
            }
        ],
        "peopleObject":{
            "XYZ":{
                "Age": "30"
            },
            "ABC":{
                "Age": "23"
            }
        }
    }

Przykład 2

Dane wejściowe JSON

    {
        "sets":[
            {
                "people":[
                    {
                        "Name": "XYZ",
                        "Age": "30"
                    },
                    {
                        "Name": "ABC",
                        "Age": "23"
                    }
                ]
            },
            {
                "people":[
                    {
                        "Name": "PQR",
                        "Age": "32"
                    },
                    {
                        "Name": "MNO",
                        "Age": "26"
                    }
                ]
            }
        ]
    }
Parametr wejściowy Wartość
propertyParentPath@body().sets
propertySubPathpeople
keyWithinCollectionPathImię i nazwisko/nazwa
newPropertyPathludzie
retainKeyprawda

Dane wyjściowe JSON:

    {
        "sets":[
            {
                "people":{
                    "XYZ":{
                        "Name": "XYZ",
                        "Age": "30"
                    },
                    "ABC":{
                        "Name": "ABC",
                        "Age": "23"
                    }
                }
            },
            {
                "people":{
                    "PQR":{
                        "Name": "PQR",
                        "Age": "32"
                    },
                    "MNO":{
                        "Name": "MNO",
                        "Age": "26"
                    }
                }
            }
        ]
    }

Należy pamiętać, że ponieważ element nadrzędny sets jest kolekcją, transformacja jest stosowana do każdej ścieżki people podrzędnej, a klucz Name jest zachowywany, ponieważ retainKey jest ustawiony na wartość true.

Przykład z łączników typu open source

Mamy jedno wystąpienie tego szablonu używane w naszym repozytorium łączników typu open source.

Łącznik Scenariusz
PlanistaPrzekształć tablicę odwołań na obiekt z identyfikatorem będącym kluczem w żądaniu akcji aktualizacji szczegółów zadania.

Parametry wejściowe

Nazwa Klucz Wymagania Pisz Opis
Target object or collection path x-ms-apimTemplateParameter.propertyParentPath Prawda String Ścieżkę do obiektu lub kolekcji.
Property subpath x-ms-apimTemplateParameter.propertySubPath String Ścieżka podrzędnej właściwości w obiekcie lub kolekcji.
Path to object key within the array x-ms-apimTemplateParameter.keyWithinCollectionPath Prawda String Ścieżka podrzędnej właściwości do klucza w obrębie poszczególnych elementów tablicy.
Path of the new property x-ms-apimTemplateParameter.newPropertyPath Prawda String Ścieżka nowej właściwości.
Retain key x-ms-apimTemplateParameter.retainKey Wyliczenie Zachowaj klucz jako właściwość.
- prawda
- fałsz
Run policy on x-ms-apimTemplate-policySection Prawda Wyliczenie Określa, kiedy należy uruchomić tę zasadę
- Żądanie: szablon zasad będzie uruchamiany przed wysłaniem żądania do interfejsu API wewnętrznej bazy danych.
- Odpowiedź: zasady zostaną wykonane po otrzymaniu odpowiedzi od interfejsu API wewnętrznej bazy danych.
Operations x-ms-apimTemplate-operationName Tablica Lista akcji i wyzwalaczy, do których mają zastosowanie te zasady. Jeśli nie zostanie wybrana żadna operacja, te zasady będą miały zastosowanie do wszystkich operacji.