Share via


JSON és XML átalakítása Folyékony sablonok használatával leképezésként munkafolyamatokban az Azure Logic Apps használatával

A következőkre vonatkozik: Azure Logic Apps (Használat + Standard)

Ha alapszintű JSON-átalakításokat szeretne végrehajtani a logikai alkalmazás munkafolyamataiban, használhat beépített adatműveleteket, például a Compose műveletet vagy a JSON-elemzési műveletet. Egyes forgatókönyvek azonban speciális és összetett átalakításokat igényelhetnek, amelyek olyan elemeket tartalmaznak, mint például az iterációk, a vezérlőfolyamatok és a változók. JSON-ról JSON-ra, JSON-ról szövegre, XML-ről JSON-ra vagy XML-szöveggé történő átalakításhoz létrehozhat egy sablont, amely leírja a szükséges leképezést vagy átalakítást a Liquid nyílt forráskódú sablonnyelv használatával. Ezt a sablont akkor választhatja ki, ha liquid beépített műveletet ad hozzá a munkafolyamathoz. A Liquid-műveleteket több-bérlős Használat logikai alkalmazás munkafolyamataiban és az egybérlős Standard logikai alkalmazás munkafolyamataiban is használhatja.

Bár nem érhetők el folyékony triggerek, a forrás JSON- vagy XML-tartalom betáplálásához bármilyen eseményindítót vagy műveletet használhat a munkafolyamatba. Használhat például egy beépített összekötő-eseményindítót, az Azure Logic Appshez elérhető felügyelt vagy Azure által üzemeltetett összekötő-eseményindítót, vagy akár egy másik alkalmazást is.

Ez a cikk a következő feladatok elvégzését mutatja be:

  • Liquid-sablon létrehozása.
  • Töltse fel a sablont az integrációs fiókba a Használat logikai alkalmazás munkafolyamataihoz vagy a Standard logikai alkalmazás erőforrásához, hogy bármilyen gyermek munkafolyamatban használhassa.
  • Liquid-művelet hozzáadása a munkafolyamathoz.
  • Válassza ki a használni kívánt sablont térképként.

További információkért tekintse át a következő dokumentációt:

Előfeltételek

  • Azure-fiók és -előfizetés. Ha még nincs előfizetése, regisztráljon egy ingyenes Azure-fiókra.

  • A logikai alkalmazás erőforrása és munkafolyamata. A folyékony műveletekhez nem érhetők el eseményindítók, ezért a munkafolyamatnak minimálisan tartalmaznia kell egy eseményindítót. További információkért tekintse meg a következő dokumentációt:

  • Attól függően, hogy használatalapú vagy standard logikaialkalmazás-munkafolyamaton dolgozik-e, szüksége lesz egy integrációs fiók erőforrására. Erre az erőforrásra általában akkor van szükség, ha nagyvállalati integrációs és B2B-munkafolyamatokban használható összetevőket szeretne definiálni és tárolni.

    Fontos

    Az együttműködéshez az integrációs fióknak és a logikai alkalmazás erőforrásának ugyanabban az Azure-előfizetésben és Azure-régióban kell lennie.

    • Ha használatalapú logikai alkalmazás munkafolyamatán dolgozik, az integrációs fióknak szüksége van a logikai alkalmazás erőforrására mutató hivatkozásra.

    • Ha standard logikaialkalmazás-munkafolyamaton dolgozik, összekapcsolhatja az integrációs fiókot a logikai alkalmazás erőforrásával, feltöltheti a térképeket közvetlenül a logikai alkalmazás erőforrására vagy mindkettőre az alábbi forgatókönyvek alapján:

      • Ha már rendelkezik integrációs fiókkal a szükséges vagy használni kívánt összetevőkkel, összekapcsolhatja az integrációs fiókot több Standard logikai alkalmazás-erőforrással, ahol használni szeretné az összetevőket. Így nem kell térképeket feltöltenie az egyes logikai alkalmazásokba. További információ: A logikai alkalmazás erőforrásának csatolása az integrációs fiókhoz.

      • A Liquid beépített összekötővel kiválaszthatja a korábban a logikai alkalmazás erőforrására vagy egy csatolt integrációs fiókba feltöltött térképet, de mindkettőt nem. Ezután ezeket az összetevőket az összes gyermek munkafolyamatban használhatja ugyanazon a logikai alkalmazás-erőforráson belül.

      Így ha nincs vagy szüksége van integrációs fiókra, használhatja a feltöltési lehetőséget. Ellenkező esetben használhatja a csatolási lehetőséget. Bármelyik módon is használhatja ezeket az összetevőket az összes gyermek munkafolyamatban ugyanazon a logikai alkalmazás-erőforráson belül.

  • Alapszintű ismeretek a Liquid-sablon nyelvéről. Az Azure Logic Apps a DotLiquid 2.0.361-et használja.

    Feljegyzés

    A JSON-ra való átalakítás nevű Liquid-művelet a Liquid DotLiquid-implementációt követi, amely bizonyos esetekben eltér a Liquid Shopify-implementációjától. További információkért tekintse meg a Liquid-sablonokkal kapcsolatos szempontokat.

1. lépés: A sablon létrehozása

Mielőtt végrehajthat egy Liquid-átalakítást a logikai alkalmazás munkafolyamatában, először létre kell hoznia egy Liquid-sablont, amely meghatározza a kívánt leképezést.

  1. Hozza létre a JSON-átalakítás térképeként használt Liquid-sablont. Tetszőleges szerkesztőeszközt használhat.

    A cikkben szereplő JSON-JSON átalakítási példa a következő Folyékony mintasablont használja:

    {%- 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. Mentse a sablont a Liquid sablon (.liquid) fájlkiterjesztéssel. Ez a példa a SimpleJsonToJsonTemplate.liquid parancsot használja.

2. lépés: Folyékony sablon feltöltése

A Liquid-sablon létrehozása után most a következő forgatókönyv alapján kell feltöltenie a sablont:

Sablon feltöltése integrációs fiókba

  1. Az Azure Portalon jelentkezzen be az Azure-fiók hitelesítő adataival.

  2. Az Azure Portal keresőmezőjében adja meg az integrációs fiókokat, és válassza az Integrációs fiókok lehetőséget.

    Screenshot showing the Azure portal search box with

  3. Keresse meg és válassza ki az integrációs fiókot.

    Screenshot showing integration accounts pane with integration account selected.

  4. Az integrációs fiók navigációs menüjében, a Gépház alatt válassza a Térképek.

    Screenshot showing integration account navigation menu with

  5. A Térképek panelen válassza a Hozzáadás lehetőséget. Adja meg a következő információkat a térképről:

    Tulajdonság Érték Leírás
    Név JsonToJsonTemplate A térkép neve, amely ebben a példában a "JsonToJsonTemplate"
    Térkép típusa Folyékony A térkép típusa. A JSON-ról JSON-ra történő átalakításhoz a Liquid lehetőséget kell választania.
    Térkép SimpleJsonToJsonTemplate.liquid Az átalakításhoz használandó meglévő Liquid-sablon vagy térképfájl, amely ebben a példában a "SimpleJsonToJsonTemplate.liquid". A fájl megkereséséhez használhatja a fájlválasztót. A térkép méretkorlátjaiért tekintse meg a korlátokat és a konfigurációt.

    Screenshot showing

Sablon feltöltése a Standard logikai alkalmazásba

  1. Az Azure Portalon keresse meg és nyissa meg a logikai alkalmazás erőforrását. Győződjön meg arról, hogy az erőforrás szintjén van, nem pedig a munkafolyamat szintjén.

  2. A logikaialkalmazás-erőforrás navigációs menüjében, az Összetevők területen válassza a Térképek.

  3. A Térképek panel eszköztárán válassza a Hozzáadás lehetőséget.

  4. A Térkép hozzáadása panelen adja meg a következő információkat a sablonról:

    Tulajdonság Érték Leírás
    Név JsonToJsonTemplate A térkép neve, amely ebben a példában a "JsonToJsonTemplate"
    Térkép típusa Folyékony A térkép típusa. A JSON-ról JSON-ra történő átalakításhoz a Liquid lehetőséget kell választania.
    Térkép SimpleJsonToJsonTemplate.liquid Az átalakításhoz használandó meglévő Liquid-sablon vagy térképfájl, amely ebben a példában a "SimpleJsonToJsonTemplate.liquid". A fájl megkereséséhez használhatja a fájlválasztót. A térkép méretkorlátjaiért tekintse meg a korlátokat és a konfigurációt.
  5. Amikor elkészült, válassza az OK lehetőséget.

    Miután a térképfájl feltöltése befejeződött, a térkép megjelenik a Térképek listában. Az integrációs fiók Áttekintés lapján, az Összetevők területen a feltöltött térkép is megjelenik.

3. lépés: A Liquid átalakítási művelet hozzáadása

Az alábbi lépések bemutatják, hogyan adhat hozzá folyékony átalakítási műveletet a Használat és a Standard logikai alkalmazás munkafolyamataihoz.

  1. Az Azure Portalon nyissa meg a logikai alkalmazás munkafolyamatát a tervezőben, ha még nem nyitotta meg.

  2. Ha a munkafolyamat nem rendelkezik eseményindítóval vagy a munkafolyamathoz szükséges egyéb műveletekkel, először vegye fel ezeket a műveleteket. A folyékony műveletekhez nincs elérhető eseményindító.

    Ez a példa a HTTP-kérés fogadásakor elnevezett Kérelem eseményindítóval folytatódik.

  3. A munkafolyamat-tervező azon lépése alatt, ahol hozzá szeretné adni a Liquid műveletet, válassza az Új lépést.

  4. A Művelet kiválasztása keresőmezőben válassza az Összes lehetőséget. A keresőmezőbe írja be a folyadékot.

  5. A műveletek listájában válassza ki a használni kívánt Liquid műveletet.

    Ez a példa továbbra is a JSON átalakítása JSON-ra nevű műveletet használja.

    Screenshot showing Consumption workflow designer with a Liquid action selected.

  6. A művelet Content tulajdonságában adja meg az eseményindító vagy az átalakítani kívánt korábbi művelet JSON-kimenetét az alábbi lépések végrehajtásával.

    1. Kattintson a Tartalom mezőbe, hogy megjelenjen a dinamikus tartalomlista.

    2. A dinamikus tartalomlistában válassza ki az átalakítani kívánt JSON-adatokat.

      Ebben a példában a dinamikus tartalomlistában a HTTP-kérés fogadásakor válassza ki a Törzs jogkivonatot, amely az eseményindító törzstartalom-kimenetét jelöli.

      Screenshot showing Consumption workflow, Liquid action's

  7. A Térkép listában válassza ki a Liquid-sablont.

    Ez a példa a JsonToJsonTemplate nevű sablonnal folytatódik.

    Screenshot showing Consumption workflow, Liquid action's

    Feljegyzés

    Ha a térképek listája üres, akkor vagy a logikai alkalmazás erőforrása nem kapcsolódik az integrációs fiókhoz, vagy az integrációs fiók nem tartalmaz térképfájlokat.

    Ha végzett, a művelet a következő példához hasonlóan néz ki:

    Screenshot showing Consumption workflow with finished

  8. Mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.

A munkafolyamat tesztelése

  1. A Postman vagy egy hasonló eszköz és a POST metódus használatával küldjön egy hívást a Kérelem eseményindító URL-címére, amely megjelenik a Kérelem eseményindító HTTP POST URL-cím tulajdonságában, és adja meg az átalakítandó JSON-bemenetet, például:

    {
       "devices": "Surface, Mobile, Desktop computer, Monitors",
       "firstName": "Dean",
       "lastName": "Ledet",
       "phone": "(111)0001111"
    }
    
  2. A munkafolyamat futtatása után nyissa meg a munkafolyamat futtatási előzményeit, és vizsgálja meg a JSON átalakítása JSON-művelet bemeneteivé és kimeneteivé, például:

    Screenshot showing example output.

Egyéb folyadékátalakítások

A Liquid használatával más átalakításokat is végrehajthat, például:

JSON átalakítása szöveggé

Az alábbi Liquid-sablon a JSON szöveggé alakítására mutat példát:

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

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

Screenshot showing example output for JSON to text transformation.

XML átalakítása JSON-ra

Az alábbi Liquid-sablon az XML-ről JSON-ra történő példaátalakítást mutatja be:

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

A JSONArrayFor hurok egy egyéni hurkozási mechanizmus AZ XML-bemenethez, így JSON-hasznos adatokat hozhat létre, amelyek elkerülik a záró vesszőt. Emellett az where egyéni hurokozási mechanizmus feltétele az XML-elem nevének összehasonlítására szolgál, nem pedig az elem értékének, mint a többi Liquid-szűrőnek. További információkért lásd : Részletes elemzés a set-body szabályzatról – Dolgok gyűjteményei.

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

Screenshot showing example output for XML to JSON transformation.

XML átalakítása szöveggé

Az alábbi Liquid-sablon az XML szöveggé alakítására mutat példát:

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

Az alábbi példa a minta bemeneteit és kimeneteit mutatja be:

Screenshot showing example output for XML to text transformation.

Likvid sablonokkal kapcsolatos szempontok

  • A folyékony sablonok az Azure Logic Apps térképeinek fájlméretkorlátait követik.

  • A JSON átalakítása JSON-ra művelet a Liquid DotLiquid implementációja alapján történik. Ez a megvalósítás a Liquid Shopify-implementációjának .NET-keretrendszer portja, és adott esetekben eltérő.

    Az alábbi lista az ismert különbségeket ismerteti:

    • A JSON átalakítása JSON-ra natív módon egy sztringet ad ki, amely tartalmazhat JSON-t, XML-t, HTML-t stb. A Liquid művelet csak azt jelzi, hogy a Liquid-sablon várt szöveges kimenete egy JSON-sztring. A művelet arra utasítja a logikai alkalmazást, hogy JSON-objektumként elemezze a bemenetet, és egy burkolót alkalmazzon, hogy a Liquid értelmezni tudja a JSON-struktúrát. Az átalakítás után a művelet arra utasítja a logikai alkalmazást, hogy elemezni fogja a Liquidből JSON-ba irányuló szöveges kimenetet.

      A DotLiquid nem ismeri natív módon a JSON-t, ezért ügyeljen arra, hogy elkerülje a fordított perjel karaktert (\) és a többi fenntartott JSON-karaktert.

    • Ha a sablon folyékony szűrőket használ, győződjön meg arról, hogy követi a DotLiquid és a C# elnevezési konvencióit, amelyek mondatburkolatot használnak. Az összes Liquid-átalakítás esetében győződjön meg arról, hogy a sablon szűrőnevei mondatburkolatot is használnak. Ellenkező esetben a szűrők nem működnek.

      Ha például a szűrőt replace használja, használja Replacea nem replace. Ugyanez a szabály érvényes, ha példákat próbál ki a DotLiquid online felületén. További információ: Shopify Liquid szűrők és DotLiquid Liquid szűrők. A Shopify specifikációja példákat tartalmaz az egyes szűrőkhöz, így összehasonlítás céljából ezeket a példákat a DotLiquid – Online kipróbálás webhelyen is kipróbálhatja.

    • A json Shopify bővítményszűrők szűrője jelenleg nincs implementálva a DotLiquidben. Ez a szűrő általában a JSON-sztringelemzés szöveges kimenetének előkészítésére használható, de ehelyett a szűrőt Replace kell használnia.

    • A DotLiquid implementáció standard Replace szűrője reguláris kifejezés (RegEx) egyeztetést használ, míg a Shopify implementáció egyszerű sztringegyeztetést használ. Úgy tűnik, hogy mindkét implementáció ugyanúgy működik, amíg regEx-fenntartott karaktert vagy feloldó karaktert nem használ az egyezés paraméterben.

      Például a RegEx által fenntartott fordított perjel (\) feloldó karakterének feloldásához használja | Replace: '\\', '\\', és ne | Replace: '\', '\\'. Ezek a példák azt mutatják be, hogy a Replace szűrő hogyan viselkedik másképp, amikor megpróbálja kikerülni a fordított perjel karaktert. Bár ez a verzió sikeresen működik:

      { "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\\', '\\' | Replace: '"', '\"'}}"}

      Ezzel az eredménnyel:

      { "SampleText": "The quick brown fox \"jumped\" over the sleeping dog\\\\"}

      Ez a verzió nem működik:

      { "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\', '\\' | Replace: '"', '\"'}}"}

      Ezzel a hibával:

      { "SampleText": "Liquid error: parsing "\" - Illegal \ at end of pattern."}

      További információ: Standard szűrő cseréje RegEx-mintaegyezés használatával....

    • A Sort DotLiquid implementáció szűrője egy tömb vagy gyűjtemény elemeit rendezi tulajdonság szerint, de az alábbi különbségekkel:

Következő lépések