Power Automate analyse JSON avec un nom de propriété dynamique

Je travaille sur un flux pour collecter des informations à partir de l'API et les charger dans la base de données.

Cependant, lors de l'obtention de la réponse de l'appel d'API, l'un des noms de propriété est variable par compte.

Ensuite, le schéma que j'obtiens de l'appel API ressemble à ceci :

{
"type": "object",
"properties": {
"12305": {
"type": "array",
"items": {
"type": "integer"
}
}
}
}

La propriété "12305" de la réponse varie d'un compte à l'autre. Et je dois parcourir tous les comptes en une seule fois.

Malheureusement, il n'est pas possible d'ajouter un contenu variable à la valeur Schema de l'action Parse JSON.

Est-ce que quelqu'un connaît la solution pour cela, s'il vous plaît?


Solution du problème

Lorsque vous appelez cette API, disposez-vous du numéro de compte ? ou comment interrogez-vous les informations sur cette API ?

Option 1:

En supposant que vous obteniez un numéro de compte ou un tableau de numéros de compte que vous devez traiter, vous pouvez utiliser ce schéma et simplement définir la variable du numéro de compte pour obtenir la réponse.

Ceci est un exemple avec un numéro de compte, si vous avez un tableau vous n'aurez qu'à créer une action "Appliquer à chacun"

Exemple de flux

Voici le flux exécuté pour cette méthode

La variable :
Numéro de compte variable

Exécution de flux

Option 2

Si vous n'avez pas le numéro de compte et que vous utilisez d'autres données pour interroger les informations de ce compte, cela devient intéressant et vous devez analyser la réponse de l'API sous forme de chaîne. Heureusement, c'est un schéma simple donc ce sera quelque chose comme ça:

Après avoir obtenu la réponse de l'API, l'action "Get Account Number from API's JSON response 1" trouvera le premier guillemet double (puisque nous savons qu'il n'y aura qu'une seule propriété selon le schéma) qui nous donnera l'index de départ du numéro de compte. Ensuite, à l'action "Définir la variable", nous recherchons le deuxième guillemet double (chaîne de fermeture) et nous avons maintenant le numéro de compte de la réponse. Après cela, nous analysons la réponse à l'aide du schéma que vous avez déjà, puis obtenons le tableau d'entiers à l'aide de la variable que nous avons définie.

Option 2 flux

Voici le flux exécuté pour cette méthode

Analyser la chaîne de réponse JSON

résultat de l'exécution de l'option 2

Expressions affichées dans les exemples (veuillez noter que si vous modifiez les noms des actions, vous devrez mettre à jour ces expressions afin qu'elles correspondent à vos actions. De plus, je ne valide pas la réponse de l'API)


  • body('Parse_JSON')?[variables('AccountNumber')]

  • sous-chaîne(sorties('JSON_response'),add(indexOf(sorties('JSON_response'),'"'),1))

  • sous-chaîne(sorties('Get_Account_Number_from_API''s_JSON_response_1'),0,indexOf(sorties('Get_Account_Number_from_API''s_JSON_response_1'),'"'))

Commentaires

Posts les plus consultés de ce blog

Erreur Symfony : "Une exception a été levée lors du rendu d'un modèle"

Détecter les appuis sur les touches fléchées en JavaScript

Une chaîne vide donne "Des erreurs ont été détectées dans les arguments de la ligne de commande, veuillez vous assurer que tous les arguments sont correctement définis"