Poznámka:
Přístup k této stránce vyžaduje autorizaci. Můžete se zkusit přihlásit nebo změnit adresáře.
Přístup k této stránce vyžaduje autorizaci. Můžete zkusit změnit adresáře.
Platí pro: Azure Logic Apps (Consumption + Standard)
Pokud chcete provádět základní transformace JSON v pracovních postupech aplikace logiky, můžete použít předdefinované operace s daty, jako je akce Vytvořit nebo Parsovat akci JSON . Některé scénáře ale můžou vyžadovat pokročilé a složité transformace, které zahrnují prvky, jako jsou iterace, toky řízení a proměnné. V případě transformací mezi JSON a JSON na text, XML do FORMÁTU JSON nebo XML na text můžete vytvořit šablonu popisující požadované mapování nebo transformaci pomocí opensourcového jazyka šablon Liquid. Tuto šablonu můžete vybrat, když do pracovního postupu přidáte integrovanou akci Liquid . Akce Liquid můžete použít v pracovních postupech víceklientských aplikací logiky Consumption a pracovních postupech aplikací logiky standardu s jedním tenantem.
I když nejsou k dispozici žádné aktivační události Liquid , můžete k podávání zdrojového obsahu JSON nebo XML do pracovního postupu použít libovolnou aktivační událost nebo akci. Můžete například použít integrovaný trigger konektoru, spravovaný trigger konektoru hostovaný v Azure, který je k dispozici pro Azure Logic Apps nebo dokonce jinou aplikaci.
Tento článek ukazuje, jak provést následující úlohy:
- Vytvořte šablonu Liquid.
- Nahrajte šablonu do svého účtu integrace pro pracovní postupy aplikace logiky Consumption nebo do prostředku standardní aplikace logiky pro použití v jakémkoli podřízeném pracovním postupu.
- Přidejte do pracovního postupu akci Liquid .
- Vyberte šablonu jako mapu, kterou chcete použít.
Další informace najdete v následující dokumentaci:
- Provádění operací s daty v Azure Logic Apps
- Jazyk open source šablon Liquid
- Využití a standardní aplikace logiky
- Integrované operace B2B (Business-to-Business)
- Informace o integrovaných konektorech v Azure Logic Apps
- Informace o spravovaných konektorech v Azure Logic Apps a spravovaných konektorech pro Azure Logic Apps
Požadavky
Účet a předplatné Azure. Pokud předplatné nemáte, zaregistrujte si bezplatný účet Azure.
Prostředek a pracovní postup aplikace logiky Operace Liquid nemají k dispozici žádné aktivační události, takže váš pracovní postup musí obsahovat aktivační událost minimálně.
Pokud nemáte prostředek a pracovní postup aplikace logiky, vytvořte je teď podle kroků pro aplikaci logiky, kterou chcete použít:
Prostředek integračního účtu. Tento prostředek obvykle potřebujete, když chcete definovat a ukládat artefakty pro použití v podnikových integracích a pracovních postupech B2B.
Důležité
Abyste mohli spolupracovat, musí váš účet integrace i prostředek aplikace logiky existovat ve stejném předplatném Azure a v oblasti Azure.
Pro pracovní postup aplikace logiky Consumption vyžaduje váš účet integrace odkaz na prostředek aplikace logiky.
Pro pracovní postup standardní aplikace logiky můžete propojit svůj účet integrace s prostředkem aplikace logiky, nahrát mapy přímo do prostředku aplikace logiky nebo obojí na základě následujících scénářů:
Pokud už máte účet integrace s artefakty, které potřebujete nebo chcete použít, můžete propojit účet integrace s několika prostředky standardní aplikace logiky, ve kterých chcete artefakty používat. Díky tomu nemusíte nahrávat mapy do každé jednotlivé aplikace logiky. Další informace najdete v tématu Propojení prostředku aplikace logiky s účtem integrace.
Vestavěný konektor Liquid umožňuje vybrat mapu, kterou jste předtím nahráli do prostředku aplikace logiky nebo do propojeného účtu integrace, ale nikoliv do obou současně. Tyto artefakty pak můžete použít napříč všemi podřízenými pracovními postupy v rámci stejného prostředku aplikace logiky.
Pokud tedy účet integrace nemáte nebo potřebujete, můžete použít možnost nahrávání. V opačném případě můžete použít možnost propojení. V obou směrech můžete tyto artefakty použít napříč všemi podřízenými pracovními postupy v rámci stejného prostředku aplikace logiky.
Základní znalost jazyka šablon Liquid Azure Logic Apps používá DotLiquid 2.0.361.
Poznámka:
Akce Liquid s názvem Transform JSON na JSON se řídí implementací DotLiquid pro Liquid, která se liší v konkrétních případech od implementace Shopify pro Liquid. Další informace najdete v tématu Důležité informace o šablonách Liquid.
Nainstalujte nebo použijte nástroj, který může odesílat požadavky HTTP k otestování vašeho řešení, například:
- Visual Studio Code s rozšířením z Webu Visual Studio Marketplace
- PowerShell Invoke-RestMethod
- Microsoft Edge – nástroj konzoly sítě
- Bruno
- kudrna
Upozornění
V situacích, kdy máte citlivá data, jako jsou přihlašovací údaje, tajné kódy, přístupové tokeny, klíče rozhraní API a další podobné informace, nezapomeňte použít nástroj, který chrání vaše data pomocí nezbytných funkcí zabezpečení. Nástroj by měl fungovat offline nebo místně a nevyžaduje přihlášení k online účtu nebo synchronizaci dat do cloudu. Při použití nástroje s těmito charakteristikami snížíte riziko zveřejnění citlivých dat veřejnosti.
Krok 1: Vytvoření šablony
Před provedením transformace Liquid v pracovním postupu aplikace logiky musíte nejprve vytvořit šablonu Liquid, která definuje požadované mapování.
Vytvořte šablonu Liquid, kterou použijete jako mapu transformace JSON. Můžete použít libovolný nástroj pro úpravy, který chcete použít.
Příklad transformace JSON-to-JSON v tomto článku používá následující ukázkovou šablonu Liquid:
{%- 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 -%} ] }Uložte šablonu pomocí přípony souboru Liquid (.liquid). Tento příklad se nazývá SimpleJsonToJsonTemplate.liquid.
Krok 2: Nahrání šablony Liquid
Po vytvoření šablony Liquid teď musíte šablonu nahrát na základě následujícího scénáře:
Pokud pracujete na pracovním postupu aplikace logiky Consumption, nahrajte šablonu do svého účtu integrace.
Pokud pracujete na pracovním postupu standardní aplikace logiky, můžete šablonu nahrát do účtu integrace nebo šablonu nahrát do prostředku aplikace logiky.
Nahrání šablony do účtu integrace
Na webu Azure Portal se přihlaste pomocí svých přihlašovacích údajů k účtu Azure.
Do vyhledávacího pole webu Azure Portal zadejte účty integrace a vyberte Účty integrace.
Vyhledejte a vyberte svůj účet integrace.
V navigační nabídce účtu integrace v části Nastavení vyberte Mapy.
V podokně Mapy vyberte Přidat. Zadejte následující informace o mapě:
Vlastnost Hodnota Popis Jméno JsonToJsonTemplate Název vaší mapy, což je JsonToJsonTemplate v tomto příkladu Typ mapy Kapalina Typ mapy. V případě transformace JSON na JSON musíte vybrat Liquid. Mapa SimpleJsonToJsonTemplate.liquid Existující šablona Liquid nebo mapovací soubor, který se použije pro transformaci, což je SimpleJsonToJsonTemplate.liquid v tomto příkladu. K vyhledání tohoto souboru můžete použít nástroj pro výběr souboru. Omezení velikosti mapy najdete v tématu Omezení a konfigurace.
Nahrání šablony do standardní aplikace logiky
V Azure Portal otevřete svůj prostředek Standard pro logické aplikace. Ujistěte se, že jste na úrovni prostředku, ne na úrovni pracovního postupu.
V nabídce postranního panelu zdroje, v části Artefakty, vyberte Mapy.
Na panelu nástrojů podokna Mapy vyberte Přidat.
V podokně Přidat mapu přetáhněte soubor do pole pro nahrání nebo vyberte Vyhledat soubory.
Po dokončení nahrávání souboru mapy se mapa zobrazí v seznamu Mapy . Na stránce Přehled vašeho účtu integrace se v části Artefakty zobrazí také nahraná mapa.
Krok 3: Přidání akce transformace Liquid
Následující kroky ukazují, jak přidat akci transformace Liquid pro pracovní postupy aplikace logiky Consumption a Standard.
Na webu Azure Portal otevřete prostředek aplikace logiky Consumption.
V nabídce bočního panelu prostředku v části Vývojové nástroje vyberte možnost návrháře, abyste otevřeli svůj pracovní postup.
Pokud váš pracovní postup nemá aktivační událost nebo žádné jiné akce, které váš pracovní postup potřebuje, přidejte nejprve tyto operace. Operace Liquid nemají k dispozici žádné aktivační události.
Tento příklad pokračuje pomocí spouštěče požadavku s názvem Při přijetí požadavku HTTP.
Pod triggerem vyberte Přidat akci. Do vyhledávacího pole zadejte kapalinu.
V seznamu akcí vyberte akci Liquid , kterou chcete použít.
Tento příklad pokračuje v používání akce s názvem Transform JSON na JSON.
Ve vlastnosti Content akce zadejte výstup JSON z triggeru nebo předchozí akce, kterou chcete transformovat pomocí následujícího postupu.
Vyberte uvnitř pole Obsah , ve kterém se zobrazí možnosti otevření seznamu dynamického obsahu (ikona blesku) nebo editoru výrazů (ikona funkce). Výběrem ikony blesku otevřete seznam dynamického obsahu.
V seznamu dynamického obsahu vyberte data JSON, která chcete transformovat.
V tomto příkladu v seznamu dynamického obsahu v části Při přijetí požadavku HTTP vyberte token Body , který představuje výstup základního obsahu z triggeru.
V seznamu Mapy vyberte šablonu Liquid.
Tento příklad pokračuje se šablonou s názvem JsonToJsonTemplate.
Poznámka:
Pokud je seznam map prázdný, prostředek aplikace logiky není propojený s vaším účtem integrace nebo váš účet integrace neobsahuje žádné mapové soubory.
Uložte pracovní postup. Na panelu nástrojů návrháře vyberte Uložit.
Otestování pracovního postupu
Pokud chcete aktivovat pracovní postup, postupujte takto:
Ve spouštěči Request vyhledejte vlastnost URL HTTP a zkopírujte URL.
Otevřete nástroj požadavku HTTP a pomocí jeho pokynů odešlete požadavek HTTP na zkopírovanou adresu URL, včetně metody, kterou trigger požadavku očekává.
Tento příklad používá metodu
POSTs adresou URL.Zahrňte vstup JSON pro transformaci, například:
{ "devices": "Surface, Mobile, Desktop computer, Monitors", "firstName": "Dean", "lastName": "Ledet", "phone": "(111)0001111" }Po dokončení běhu pracovního postupu přejděte do historie spuštění pracovního postupu a prozkoumejte vstupy a výstupy akce JSON transformace na json, například:
Další transformace Liquid
Liquid můžete použít k provádění dalších transformací, například:
Transformace JSON na text
Následující šablona Liquid ukazuje ukázkovou transformaci kódu JSON na text:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Následující příklad ukazuje ukázkové vstupy a výstupy:
Transformace XML na JSON
Následující šablona Liquid ukazuje příklad transformace XML na JSON:
[{% JSONArrayFor item in content -%}
{{item}}
{% endJSONArrayFor -%}]
Smyčka JSONArrayFor je vlastní mechanismus smyčky pro vstup XML, abyste mohli vytvářet datové části JSON, které se vyhýbají koncovému čárkám.
where Podmínka pro tento vlastní mechanismus smyčky také používá název elementu XML pro porovnání, nikoli hodnotu elementu jako jiné filtry Liquid. Další informace najdete v tématu Hloubkové informace o zásadách nastavení – kolekce věcí.
Následující příklad ukazuje ukázkové vstupy a výstupy:
Transformace XML na text
Následující šablona Liquid ukazuje příklad transformace XML na text:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Následující příklad ukazuje ukázkové vstupy a výstupy:
Důležité informace o šablonách Liquid
Šablony Liquid se řídí omezeními velikosti souborů pro mapy v Azure Logic Apps.
Akce TransformOVAT JSON na JSON se řídí implementací DotLiquid pro Liquid. Tato implementace je portem rozhraní .NET Framework z implementace Shopify pro Liquid a liší se v konkrétních případech.
Následující seznam popisuje známé rozdíly:
Akce Transformovat JSON na JSON nativně vypíše řetězec, který může obsahovat JSON, XML, HTML atd. Akce Liquid označuje, že očekávaný textový výstup ze šablony Liquid je řetězec JSON. Akce dává vaší aplikaci logiky pokyn, aby parsoval vstup jako objekt JSON a použil obálku, aby liquid mohl interpretovat strukturu JSON. Po transformaci akce dá vaší aplikaci logiky pokyn, aby parsoval textový výstup z Liquid zpět do FORMÁTU JSON.
DotLiquid nativně nerozumí formátu JSON, proto se ujistěte, že uchytáte znak zpětného lomítka (
\) a všechny další rezervované znaky JSON.Pokud vaše šablona používá filtry Liquid, ujistěte se, že dodržujete zásady vytváření názvů v jazyce C#, které používají písmena vět. U všech transformací Liquid se ujistěte, že názvy filtrů v šabloně používají také velká písmena vět. Jinak filtry nefungují.
Pokud například použijete
replacefiltr, použijteReplace, nereplace. Stejné pravidlo platí, pokud si vyzkoušíte příklady na webu DotLiquid online. Další informace naleznete v tématu Shopify Liquid filtry a DotLiquid Liquid filtry. Specifikace Shopify obsahuje příklady pro každý filtr, takže pro porovnání můžete vyzkoušet tyto příklady na DotLiquid - Vyzkoušet online.Filtr
jsonz filtrů rozšíření Shopify se v současné době neimplementuje ve službě DotLiquid. Tento filtr obvykle můžete použít k přípravě textového výstupuReplacepro analýzu řetězců JSON, ale místo toho musíte použít filtr.Standardní
Replacefiltr v implementaci DotLiquid používá porovnávání regulárního výrazu (RegEx), zatímco implementace Shopify používá jednoduché porovnávání řetězců. Obě implementace se zdá, že fungují stejným způsobem, dokud v parametru shody nepoužijete vyhrazený znak RegEx nebo řídicí znak.Chcete-li například utéct řídicí znak zpětného lomítka
\() rezervovaného regulárního výrazu, použijte| Replace: '\\', '\\'a ne| Replace: '\', '\\'. Tyto příklady ukazují, jakReplacese filtr chová jinak, když se pokusíte ukazovat znak zpětného lomítka. I když tato verze úspěšně funguje:{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\\', '\\' | Replace: '"', '\"'}}"}S tímto výsledkem:
{ "SampleText": "The quick brown fox \"jumped\" over the sleeping dog\\\\"}Tato verze selže:
{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\', '\\' | Replace: '"', '\"'}}"}S touto chybou:
{ "SampleText": "Liquid error: parsing "\" - Illegal \ at end of pattern."}Další informace naleznete v tématu Nahrazení standardního filtru používá porovnávání vzorů RegEx....
Filtr
Sortv implementaci DotLiquid seřadí položky v poli nebo kolekci podle vlastnosti, ale s těmito rozdíly:Řídí se sort_natural chováním Shopify, nikoli chováním Shopify.
Seřadí se pouze v řetězci alfanumerickém pořadí. Další informace naleznete v tématu Číselné řazení.
Používá pořadí nerozlišující velká a malá a velká písmena. Další informace najdete v tématu Filtr řazení, který neodpovídá chování při dělení na velká a velká část ze specifikace Shopify.