Effectuez des transformations JSON avancées avec des modèles Liquid dans Azure Logic AppsPerform advanced JSON transformations with Liquid templates in Azure Logic Apps

Vous pouvez effectuer des transformations JSON de base dans vos applications logiques par le biais d’actions d’opérations de données natives telles que Compose ou Parse JSON.You can perform basic JSON transformations in your logic apps with native data operation actions such as Compose or Parse JSON. Pour effectuer des transformations JSON avancées, vous pouvez créer des modèles ou des mappages avec Liquid, qui est un langage de modèle open source destiné aux applications web flexibles.To perform advanced JSON transformations, you can create templates or maps with Liquid, which is an open-source template language for flexible web apps. Un modèle Liquid définit comment transformer une sortie JSON et prend en charge des transformations JSON plus complexes (itérations, flux de contrôle, variables, etc.).A Liquid template defines how to transform JSON output and supports more complex JSON transformations, such as iterations, control flows, variables, and so on.

Avant de pouvoir effectuer une transformation Liquid dans votre application logique, vous devez définir le mappage JSON à JSON avec un modèle Liquid et le stocker dans votre compte d’intégration.Before you can perform a Liquid transformation in your logic app, you must first define the JSON to JSON mapping with a Liquid template and store that map in your integration account. Cet article vous montre comment créer et utiliser ce modèle ou ce mappage Liquid.This article shows you how to create and use this Liquid template or map.

PrérequisPrerequisites

Créer un mappage ou un modèle Liquid pour votre compte d’intégrationCreate Liquid template or map for your integration account

  1. Pour cet exemple, créez l’exemple de modèle Liquid décrit à cette étape.For this example, create the sample Liquid template described in this step. Dans votre modèle Liquid, vous pouvez définir des filtres Liquid, qui utilisent les conventions de nommage de DotLiquid et C#.In your Liquid template, you can use Liquid filters, which use DotLiquid and C# naming conventions.

    Notes

    Assurez-vous que les noms de filtre utilisent la mise en majuscules des phrases dans votre modèle.Make sure the filter names use sentence casing in your template. Sinon, les filtres ne fonctionneront pas.Otherwise, the filters won't work.

    {%- assign deviceList = content.devices | Split: ', ' -%}
    
    {
       "fullName": "{{content.firstName | Append: ' ' | Append: content.lastName}}",
       "firstNameUpperCase": "{{content.firstName | Upcase}}",
       "phoneAreaCode": "{{content.phone | Slice: 1, 3}}",
       "devices" : [
          {%- for device in deviceList -%}
             {%- if forloop.Last == true -%}
             "{{device}}"
             {%- else -%}
             "{{device}}",
             {%- endif -%}
         {%- endfor -%}
         ]
    }
    
  2. Connectez-vous au Portail Azure.Sign in to the Azure portal. Dans le menu principal Azure, sélectionnez Toutes les ressources.On the main Azure menu, select All resources. Dans la zone de recherche, recherchez et sélectionnez votre compte d’intégration.In the search box, find and select your integration account.

    Sélectionner le compte d’intégration

  3. Sous Composants, sélectionnez Mappages.Under Components, select Maps.

    Sélectionner Mappages

  4. Choisissez Ajouter et indiquez les informations suivantes pour votre mappage :Choose Add and provide these details for your map:

    PropriétéProperty ValeurValue DescriptionDescription
    NomName JsonToJsonTemplateJsonToJsonTemplate Nom de votre mappage (« JsontoJsonTemplate » dans cet exemple)The name for your map, which is "JsonToJsonTemplate" in this example
    Type de mappageMap type liquidliquid Type de votre mappage.The type for your map. Pour une transformation JSON à JSON, vous devez sélectionner liquid.For JSON to JSON transformation, you must select liquid.
    MapMap « SimpleJsonToJsonTemplate.liquid »"SimpleJsonToJsonTemplate.liquid" Fichier de modèle ou de mappage Liquid existant à utiliser pour la transformation (« SimpleJsonToJsonTemplate.liquid » dans cet exemple).An existing Liquid template or map file to use for transformation, which is "SimpleJsonToJsonTemplate.liquid" in this example. Pour trouver ce fichier, vous pouvez utiliser le sélecteur de fichiers.To find this file, you can use the file picker.

    Ajouter un modèle Liquid

Ajouter l’action Liquid pour la transformation JSONAdd the Liquid action for JSON transformation

  1. Dans le portail Azure, procédez comme suit pour créer une application logique vierge.In the Azure portal, follow these steps to create a blank logic app.

  2. Dans le Concepteur d’application logique, ajoutez le déclencheur Requête à votre application logique.In the Logic App Designer, add the Request trigger to your logic app.

  3. Sous le déclencheur, choisissez Nouvelle étape.Under the trigger, choose New step. Dans la zone de recherche, entrez « liquid » comme filtre, puis sélectionnez cette action : Transformer de JSON en JSON - LiquidIn the search box, enter "liquid" as your filter, and select this action: Transform JSON to JSON - Liquid

    Rechercher et sélectionner l’action Liquid

  4. Cliquez dans la zone Contenu pour afficher la liste du contenu dynamique, puis sélectionnez le jeton Corps.Click inside the Content box so that the dynamic content list appears, and select the Body token.

    Sélectionner le corps

  5. Dans la liste Mappage, sélectionnez votre modèle Liquid (« JsonToJsonTemplate » dans cet exemple).From the Map list, select your Liquid template, which is "JsonToJsonTemplate" in this example.

    Sélectionner le mappage

    Si la liste de mappages est vide, votre application logique n’est probablement pas liée à votre compte d’intégration.If the maps list is empty, most likely your logic app is not linked to your integration account. Pour lier votre application logique au compte d’intégration associé au modèle ou au mappage Liquid, effectuez les étapes suivantes :To link your logic app to the integration account that has the Liquid template or map, follow these steps:

    1. Dans le menu de votre application logique, sélectionnez Paramètres de flux de travail.On your logic app menu, select Workflow settings.

    2. Dans la liste Sélectionner un compte d’intégration, sélectionnez votre compte d’intégration et choisissez Enregistrer.From the Select an Integration account list, select your integration account, and choose Save.

      Lier une application logique à un compte d’intégration

Tester votre application logiqueTest your logic app

Publiez l’entrée JSON sur votre application logique à partir de Postman ou d’un outil similaire.Post JSON input to your logic app from Postman or a similar tool. La sortie JSON transformée à partir de votre application logique ressemble à ceci :The transformed JSON output from your logic app looks like this example:

Exemple de sortie

Autres exemples d’actions LiquidMore Liquid action examples

Liquid n’est pas limité aux transformations JSON.Liquid is not limited to only JSON transformations. Voici d’autres actions de transformation disponibles qui utilisent Liquid.Here are other available transformation actions that use Liquid.

  • Transformer du JSON en texteTransform JSON to text

    Voici le modèle Liquid utilisé pour cet exemple :Here is the Liquid template used for this example:

    {{content.firstName | Append: ' ' | Append: content.lastName}}
    

    Voici quelques exemples d’entrées et de sorties :Here are sample inputs and outputs:

    Exemple de sortie JSON en texte

  • Transformer du XML en JSONTransform XML to JSON

    Voici le modèle Liquid utilisé pour cet exemple :Here is the Liquid template used for this example:

    [{% JSONArrayFor item in content -%}
          {{item}}
      {% endJSONArrayFor -%}]
    

    Voici quelques exemples d’entrées et de sorties :Here are sample inputs and outputs:

    Exemple de sortie XML en JSON

  • Transformer du XML en texteTransform XML to text

    Voici le modèle Liquid utilisé pour cet exemple :Here is the Liquid template used for this example:

    {{content.firstName | Append: ' ' | Append: content.lastName}}
    

    Voici quelques exemples d’entrées et de sorties :Here are sample inputs and outputs:

    Exemple de sortie XML en texte

Étapes suivantesNext steps