Compartir a través de


Convertir una matriz en un objeto (versión preliminar)

Identificación de plantilla: convertarraytoobject

Convierte una matriz en el cuerpo en un objeto JSON con elementos identificados por una clave especificada por el usuario. Esta plantilla está disponible en Power Apps y Power Automate.

Para comenzar, especifique la ruta al objeto o la colección principal y la ruta secundaria de la propiedad dentro de la principal donde se encuentra la matriz. A continuación, especifique una propiedad dentro de cada elemento de la matriz como clave de objeto. La existencia de dicha clave es necesaria para que la transformación tenga sentido, ya que las claves de objeto deben ser únicas y se espera que esa clave de objeto explique el resto de las propiedades, que pasarán a formar parte del valor. Finalmente, especifique la ruta donde se escribirá la nueva propiedad del objeto.

Algunas cosas a tener en cuenta:

  • Puede dejar la subruta vacía si el primario es la matriz que desea transformar.
  • Para sobrescribir la matriz existente, la ruta sería la ruta principal y la ruta secundaria de propiedad especificadas previamente.
  • Para mantener la clave de objeto especificada como una propiedad dentro del nuevo objeto, establezca la opción "Retener clave" en "verdadero" (que es el valor predeterminado si se deja vacío). De lo contrario, establezca la opción en "falso".

Ejemplos

Veamos algunos ejemplos que utilizan los siguientes parámetros.

Ejemplo 1

Entrada JSON:

    {
        "peopleArray":[
            {
               "Name": "XYZ",
               "Age": "30"
            },
            {
               "Name": "ABC",
               "Age": "23"
            }
        ]
    }
Parámetro de entrada Valor
propertyParentPath@body()
propertySubPathpeopleArray
keyWithinCollectionPathNombre
newPropertyPathpeopleObject
retainKeyfalse

Salida JSON:

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

Ejemplo 2

Entrada JSON

    {
        "sets":[
            {
                "people":[
                    {
                        "Name": "XYZ",
                        "Age": "30"
                    },
                    {
                        "Name": "ABC",
                        "Age": "23"
                    }
                ]
            },
            {
                "people":[
                    {
                        "Name": "PQR",
                        "Age": "32"
                    },
                    {
                        "Name": "MNO",
                        "Age": "26"
                    }
                ]
            }
        ]
    }
Parámetro de entrada Valor
propertyParentPath@body().sets
propertySubPathpeople
keyWithinCollectionPathName
newPropertyPathpeople
retainKeytrue

Salida JSON:

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

Tenga en cuenta que, dado que el padre sets es una colección, la transformación se aplica a cada subPath people y la clave Name se conserva ya que maintainKey se establece en verdadero.

Ejemplo de conectores de código abierto

Tenemos una instancia de esta plantilla que se utiliza en nuestro repositorio de conectores de código abierto .

Conector Escenario
PlanificadorTransforme una matriz de referencias en un objeto con la identificación como clave en la solicitud de acción Actualizar detalles de la tarea.

Parámetros de entrada

Nombre Llave Obligatorio Tipo Descripción
Target object or collection path x-ms-apimTemplateParameter.propertyParentPath True String Ruta al objeto o colección.
Property subpath x-ms-apimTemplateParameter.propertySubPath String Subruta de propiedad dentro del objeto o colección.
Path to object key within the array x-ms-apimTemplateParameter.keyWithinCollectionPath True String Ruta secundaria a la clave dentro de cada elemento de la matriz.
Path of the new property x-ms-apimTemplateParameter.newPropertyPath True String Ruta de la nueva propiedad.
Retain key x-ms-apimTemplateParameter.retainKey Enum Conservar la clave como propiedad.
- verdadero
- falso
Run policy on x-ms-apimTemplate-policySection True Enum Especifica cuándo ejecutar esta directiva
- Solicitud: la plantilla de directiva se ejecutará antes de enviar la solicitud a la API de back-end.
- Respuesta: la directiva se ejecutará después de recibir la respuesta de la API de back-end.
Operations x-ms-apimTemplate-operationName Matriz Lista de acciones y desencadenadores a los que se aplicará la directiva. Si no se selecciona ninguna operación, esta directiva se aplicará a todas las operaciones.