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:
- Adatműveletek végrehajtása az Azure Logic Appsben
- Folyékony nyílt forráskódú sablonnyelv
- Használat és standard logikai alkalmazások
- Integrációs fiók beépített összekötői
- Az Azure Logic Apps beépített összekötőinek áttekintése
- Felügyelt vagy Azure-beli összekötők áttekintése az Azure Logic Appshez , valamint az Azure Logic Apps felügyelt vagy Azure által üzemeltetett összekötőihez
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.
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 -%} ] }
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:
Ha használatalapú logikai alkalmazás munkafolyamatán dolgozik, töltse fel a sablont az integrációs fiókba.
Ha standard logikaialkalmazás-munkafolyamaton dolgozik, feltöltheti a sablont az integrációs fiókba, vagy feltöltheti a sablont a logikai alkalmazás erőforrására.
Sablon feltöltése integrációs fiókba
Az Azure Portalon jelentkezzen be az Azure-fiók hitelesítő adataival.
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.
Keresse meg és válassza ki az integrációs fiókot.
Az integrációs fiók navigációs menüjében, a Gépház alatt válassza a Térképek.
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.
Sablon feltöltése a Standard logikai alkalmazásba
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.
A logikaialkalmazás-erőforrás navigációs menüjében, az Összetevők területen válassza a Térképek.
A Térképek panel eszköztárán válassza a Hozzáadás lehetőséget.
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. 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.
Az Azure Portalon nyissa meg a logikai alkalmazás munkafolyamatát a tervezőben, ha még nem nyitotta meg.
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.
A munkafolyamat-tervező azon lépése alatt, ahol hozzá szeretné adni a Liquid műveletet, válassza az Új lépést.
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.
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.
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.
Kattintson a Tartalom mezőbe, hogy megjelenjen a dinamikus tartalomlista.
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.
A Térkép listában válassza ki a Liquid-sablont.
Ez a példa a JsonToJsonTemplate nevű sablonnal folytatódik.
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:
Mentse a munkafolyamatot. A tervező eszköztárán válassza a Mentés lehetőséget.
A munkafolyamat tesztelése
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" }
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:
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:
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:
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:
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áljaReplace
a nemreplace
. 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őtReplace
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 aReplace
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:A Shopify sort_natural viselkedését követi, nem a Shopify rendezési viselkedését.
Csak sztring-alfanumerikus sorrendben rendez. További információ: Numerikus rendezés.
Kis- és nagybetűket nem megkülönböztető sorrendet használ. További információ: A Rendezés szűrő nem követi a Shopify specifikációjának burkolati viselkedését.
Következő lépések
- Shopify Liquid nyelv és példák
- DotLiquid
- DotLiquid – Online kipróbálás
- DotLiquid GitHub
- DotLiquid GitHub-problémák
- További információ a térképekről