Mengubah JSON dan XML menggunakan templat Liquid sebagai peta di alur kerja menggunakan Azure Logic Apps
Berlaku untuk: Azure Logic Apps (Konsumsi + Standar)
Saat Anda ingin menjalankan transformasi JSON dasar di alur kerja aplikasi logika, Anda dapat menggunakan operasi data bawaan, seperti tindakan Susun atau tindakan Urai JSON. Namun, beberapa skenario mungkin memerlukan transformasi tingkat lanjut dan kompleks yang mencakup elemen seperti perulangan, alur kontrol, dan variabel. Untuk transformasi antara JSON ke JSON, JSON ke teks, XML ke JSON, atau XML ke teks, Anda dapat membuat templat yang menjelaskan pemetaan atau transformasi yang diperlukan menggunakan bahasa templat sumber terbuka Liquid. Anda dapat memilih templat ini saat menambahkan tindakan bawaan Liquid ke alur kerja Anda. Anda dapat menggunakan tindakan Liquid di alur kerja aplikasi logika Konsumsi multipenyewa dan alur kerja aplikasi logika Standar penyewa tunggal.
Meskipun pemicu Liquid tidak tersedia, Anda dapat menggunakan pemicu atau tindakan apa pun untuk mendapatkan atau mengumpan konten JSON atau XML sumber ke dalam alur kerja. Misalnya, Anda dapat menggunakan pemicu konektor bawaan, pemicu konektor terkelola atau yang dihosting Azure yang tersedia untuk Azure Logic Apps, atau bahkan aplikasi lain.
Artikel ini memperlihatkan kepada Anda cara menyelesaikan tugas berikut:
- Buat template Liquid.
- Unggah templat ke akun integrasi Anda untuk alur kerja aplikasi logika Konsumsi atau ke sumber daya aplikasi logika Standar Anda untuk digunakan dalam alur kerja turunan mana pun.
- Tambahkan tindakan Liquid ke alur kerja Anda.
- Pilih template sebagai peta yang ingin Anda gunakan.
Untuk informasi selengkapnya, tinjau dokumentasi berikut ini:
- Melakukan operasi data di Azure Logic Apps
- Bahasa templat sumber terbuka Liquid
- Konsumsi versus aplikasi logika Standar
- Konektor bawaan akun integrasi
- Gambaran umum konektor bawaan untuk Azure Logic Apps
- Gambaran umum konektor terkelola atau yang dihosting Azure untuk Azure Logic Apps dan Konektor terkelola atau yang dihosting Azure di Azure Logic Apps
Prasyarat
Akun dan langganan Azure. Jika Anda tidak memiliki langganan, daftar untuk mendapatkan akun Azure secara gratis.
Sumber daya dan alur kerja aplikasi logika Anda. Operasi Liquid tidak memiliki pemicu yang tersedia, sehingga alur kerja Anda harus menyertakan pemicu secara minimal. Untuk informasi selengkapnya, se dokumentasi berikut:
Berdasarkan apakah Anda bekerja pada alur kerja aplikasi logika Konsumsi atau Standar, Anda memerlukan sumber daya akun integrasi. Biasanya, Anda memerlukan sumber daya ini ketika Anda ingin menentukan dan menyimpan artefak untuk digunakan dalam integrasi perusahaan dan alur kerja B2B.
Penting
Untuk bekerja sama, akun integrasi dan sumber daya aplikasi logika Anda harus berada di langganan Azure dan wilayah Azure yang sama.
Apabila Anda bekerja pada alur kerja aplikasi logika Konsumsi, akun integrasi Anda memerlukan link ke sumber daya aplikasi logika Anda.
Apabila Anda bekerja pada alur kerja aplikasi logika Standar, Anda dapat menautkan akun integrasi ke sumber daya aplikasi logika, mengunggah peta secara langsung ke sumber daya aplikasi logika Anda, atau keduanya, berdasarkan skenario berikut:
Apabila Anda sudah memiliki akun integrasi dengan artefak yang Anda butuhkan atau ingin Anda gunakan, Anda dapat menautkan akun integrasi ke beberapa sumber daya aplikasi logika Standar tempat Anda ingin menggunakan artefak tersebut. Dengan demikian, Anda tidak perlu mengunggah peta ke setiap aplikasi logika individu. Untuk informasi selengkapnya, tinjau Menautkan sumber daya aplikasi logika Anda ke akun integrasi Anda.
Konektor bawaan Liquid membuat agar Anda dapat memilih peta yang sebelumnya Anda unggah ke sumber daya aplikasi logika atau ke akun integrasi tertaut, tetapi tidak keduanya. Kemudian, Anda dapat menggunakan artefak ini di seluruh alur kerja turunan di dalam sumber daya aplikasi logika yang sama.
Jadi, apabila Anda tidak memiliki atau memerlukan akun integrasi, Anda dapat menggunakan opsi unggah. Jika tidak, Anda dapat menggunakan opsi penautan. Bagaimanapun, Anda dapat menggunakan artefak ini di seluruh alur kerja turunan di dalam sumber daya aplikasi logika yang sama.
Pengetahuan dasar tentang bahasa komputer template Liquid. Azure Logic Apps menggunakan DotLiquid 2.0.361.
Catatan
Tindakan Liquid bernama Ubah JSON ke JSON mengikuti implementasi DotLiquid untuk Liquid, yang berbeda dalam kasus tertentu dari implementasi Shopify untuk Liquid. Untuk informasi selengkapnya, lihat bagian pertimbangan template Liquid.
Langkah 1: Membuat templat
Sebelum Anda dapat melakukan transformasi Liquid di alur kerja aplikasi logika, Anda harus terlebih dahulu membuat templat Liquid yang menentukan pemetaan yang Anda inginkan.
Buat template Liquid yang Anda gunakan sebagai peta untuk transformasi JSON. Anda dapat menggunakan alat pengeditan apa pun yang Anda inginkan.
Contoh transformasi JSON ke JSON dalam artikel ini menggunakan sampel templat Liquid berikut:
{%- 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 -%} ] }
Simpan templat menggunakan ekstensi file templat Liquid (.liquid). Contoh ini menggunakan SimpleJsonToJsonTemplate.liquid.
Langkah 2: Unggah templat Liquid
Setelah membuat templat Liquid, sekarang Anda harus mengunggah templat berdasarkan skenario berikut:
Apabila Anda bekerja pada alur kerja aplikasi logika Konsumsi, unggah templat Anda ke akun integrasi.
Apabila Anda bekerja pada alur kerja aplikasi logika Standar, Anda dapat mengunggah templat ke akun integrasi, atau mengunggah templat ke sumber daya aplikasi logika Anda.
Mengunggah templat ke akun integrasi
Di portal Microsoft Azure masuk dengan kredensial akun Azure Anda.
Di kotak pencarian portal Azure, masukkan akun integrasi, dan pilih Akun integrasi.
Temukan dan pilih akun integrasi Anda.
Pada menu navigasi akun integrasi, pada Pengaturan, pilih Peta.
Pada panel Peta, pilih Tambahkan. Berikan informasi berikut mengenai peta Anda:
Properti Nilai Deskripsi Nama JsonToJsonTemplate
Nama untuk peta Anda, yaitu "JsonToJsonTemplate" dalam contoh ini Jenis peta Liquid Jenis peta Anda. Untuk transformasi JSON ke JSON, Anda harus memilih Liquid. Peta SimpleJsonToJsonTemplate.liquid
Template atau file peta Liquid yang ada untuk digunakan untuk transformasi, yaitu "SimpleJsonToJsonTemplate.liquid" dalam contoh ini. Untuk menemukan file ini, Anda bisa menggunakan pemilih file. Untuk batas ukuran peta, lihat Batasan dan konfigurasi.
Mengunggah templat ke aplikasi logika Standar
Di portal Azure, cari dan buka sumber daya aplikasi logika Anda. Pastikan Anda berada di tingkat sumber daya, bukan tingkat alur kerja.
Di menu navigasi sumber daya aplikasi logika Anda, pada Artefak, pilih Peta.
Di bar alat panel Maps, pilih Add.
Pada panel Tambahkan Peta, berikan informasi berikut tentang templat Anda:
Properti Nilai Deskripsi Nama JsonToJsonTemplate
Nama untuk peta Anda, yaitu "JsonToJsonTemplate" dalam contoh ini Jenis peta Liquid Jenis peta Anda. Untuk transformasi JSON ke JSON, Anda harus memilih Liquid. Peta SimpleJsonToJsonTemplate.liquid
Template atau file peta Liquid yang ada untuk digunakan untuk transformasi, yaitu "SimpleJsonToJsonTemplate.liquid" dalam contoh ini. Untuk menemukan file ini, Anda bisa menggunakan pemilih file. Untuk batas ukuran peta, lihat Batasan dan konfigurasi. Setelah selesai, pilih OK.
Setelah file peta Anda selesai diunggah, peta akan muncul di daftar Peta. Pada menu akun integrasi halaman Overview Anda, di bawah Artifacts, assembly Anda yang diunggah juga muncul.
Langkah 3: Tambahkan tindakan transformasi Liquid
Langkah-langkah berikut menunjukkan cara menambahkan tindakan transformasi Liquid untuk alur kerja aplikasi logika Konsumsi dan Standar.
Di portal Azure, buka alur kerja aplikasi logika Anda di perancang, jika belum dibuka.
Apabila alur kerja Anda tidak memiliki pemicu atau tindakan lain yang dibutuhkan alur kerja Anda, tambahkan operasi tersebut terlebih dahulu. Operasi liquid tidak memiliki pemicu yang tersedia.
Contoh ini berlanjut dengan pemicu Permintaan bernama Saat permintaan HTTP diterima.
Di perancang alur kerja, pada langkah tempat Anda ingin menambahkan tindakan Liquid, pilih Langkah baru.
Di bawah kotak Pilih pencarian operasi, pilih Semua. Di kotak pencarian, masukkan liquid.
Dari daftar tindakan, pilih tindakan Liquid yang ingin Anda gunakan.
Contoh ini terus menggunakan tindakan bernama Ubah JSON ke JSON.
Di properti Konten tindakan, berikan output JSON dari pemicu atau tindakan sebelumnya yang ingin Anda ubah dengan mengikuti langkah-langkah ini.
Klik di dalam kotakKonten sehingga daftar konten dinamis muncul.
Dari daftar konten dinamis, pilih data JSON yang ingin Anda ubah.
Untuk contoh ini, dari daftar konten dinamis, pada Saat permintaan HTTP diterima, pilih token Isi, yang mewakili output konten isi dari pemicu.
Dari daftar Nama, pilih templat Liquid Anda.
Contoh ini berlanjut dengan templat bernama JsonToJsonTemplate.
Catatan
Jika daftar peta kosong, penyebabnya mungkin karena sumber daya aplikasi logika Anda tidak ditautkan ke akun integrasi, atau akun integrasi Anda tidak berisi file peta apa pun.
Setelah selesai, tindakan tersebut terlihat mirip dengan contoh berikut:
Simpan alur kerja Anda. Di bar alat perancang, pilih Simpan.
Menguji alur kerja
Dengan menggunakan Postman atau alat serupa dan metode
POST
, kirim panggilan ke URL pemicu Permintaan yang muncul di properti URL POST HTTP pemicu Permintaan, dan sertakan input JSON yang ingin Anda transformasi, sebagai contohnya:{ "devices": "Surface, Mobile, Desktop computer, Monitors", "firstName": "Dean", "lastName": "Ledet", "phone": "(111)0001111" }
Setelah alur kerja Anda selesai dijalankan, buka riwayat eksekusi alur kerja, dan periksa input dan output tindakan Ubah JSON menjadi JSON, misalnya:
Transformasi Liquid lainnya
Anda dapat menggunakan Liquid untuk melakukan transformasi lainnya, misalnya:
Ubah JSON ke teks
Templat Liquid berikut menampilkan contoh transformasi untuk JSON ke teks:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Contoh berikut menampilkan sampel input dan output:
Ubah XML ke JSON
Templat Liquid berikut menampilkan contoh transformasi untuk XML ke JSON:
[{% JSONArrayFor item in content -%}
{{item}}
{% endJSONArrayFor -%}]
JSONArrayFor
Loop adalah mekanisme perulangan kustom untuk input XML sehingga Anda dapat membuat muatan JSON yang menghindari berikutnya koma. Selain itu, where
kondisi untuk mekanisme perulangan kustom ini menggunakan nama elemen XML untuk perbandingan, alih-alih nilai elemen seperti filter Liquid lainnya. Untuk informasi selengkapnya, lihat Dalami Kebijakan set-body - Koleksi Barang.
Contoh berikut menampilkan sampel input dan output:
Ubah XML ke JSON
Templat Liquid berikut menampilkan contoh transformasi untuk XML ke teks:
{{content.firstName | Append: ' ' | Append: content.lastName}}
Contoh berikut menampilkan sampel input dan output:
Pertimbangkan template Liquid
Template Liquid mengikuti batas ukuran file untuk peta di Azure Logic Apps.
Tindakan Ubah JSON ke JSON mengikuti implementasi DotLiquid untuk Liquid. Implementasi ini adalah port ke .NET Framework dari implementasi Shopify untuk Liquid dan berbeda dalam kasus tertentu.
Daftar berikut menjelaskan perbedaan yang diketahui:
Tindakan Ubah JSON ke JSON menghasilkan string secara asli, yang dapat mencakup JSON, XML, HTML, dan sebagainya. Tindakan Liquid hanya menunjukkan bahwa output teks yang diharapkan dari template Liquid adalah string JSON. Tindakan ini menginstruksikan aplikasi logika Anda untuk mengurai input sebagai objek JSON dan menerapkan pembungkus sehingga Liquid dapat menafsirkan struktur JSON. Setelah transformasi, tindakan menginstruksikan aplikasi logika Anda untuk mengurai output teks dari Liquid kembali ke JSON.
DotLiquid tidak secara asli memahami JSON, jadi pastikan Anda melarikan diri dari karakter garis miring terbalik (
\
) dan karakter JSON lainnya yang dipesan.Jika template Anda menggunakan Filter Liquid, pastikan Anda mengikuti konvensi penamaan DotLiquid dan C #, yang menggunakan casing kalimat. Untuk semua transformasi Liquid, pastikan bahwa nama filter di template Anda juga menggunakan casing kalimat. Jika tidak, filternya tidak akan berfungsi.
Misalnya, saat Anda menggunakan filter
replace
, gunakanReplace
, bukanreplace
. Aturan yang sama berlaku jika Anda mencoba contoh di DotLiquid online. Untuk informasi selengkapnya, lihat Filter Shopify Liquid dan Filter DotLiquid Liquid. Spesifikasi Shopify mencakup contoh untuk setiap filter, jadi sebagai perbandingan, Anda dapat mencoba contoh-contoh ini di DotLiquid - Coba online.Filter
json
dari filter ekstensi Shopify saat ini tidak diimplementasikan di DotLiquid. Biasanya, Anda dapat menggunakan filter ini untuk menyiapkan output teks untuk penguraian string JSON, tetapi sebaliknya, Anda perlu menggunakan filterReplace
sebagai gantinya.Filter
Replace
standar dalam implementasi DotLiquid menggunakan pencocokan ekspresi reguler (RegEx), sedangkan implementasi Shopify menggunakan pencocokan string sederhana. Kedua implementasi tampaknya bekerja dengan cara yang sama sampai Anda menggunakan karakter pesanan RegEx atau karakter escape dalam parameter pencocokan.Misalnya, untuk menghindari karakter escape backslash yang dicadangkan RegEx (
\
), gunakan| Replace: '\\', '\\'
, dan bukan| Replace: '\', '\\'
. Contoh-contoh ini menunjukkan bagaimana filterReplace
berperilaku berbeda ketika Anda mencoba menghindari karakter backslash. Meskipun versi ini berhasil bekerja:{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\\', '\\' | Replace: '"', '\"'}}"}
Dengan hasil ini:
{ "SampleText": "The quick brown fox \"jumped\" over the sleeping dog\\\\"}
Versi ini gagal:
{ "SampleText": "{{ 'The quick brown fox "jumped" over the sleeping dog\\' | Replace: '\', '\\' | Replace: '"', '\"'}}"}
Dengan kesalahan ini:
{ "SampleText": "Liquid error: parsing "\" - Illegal \ at end of pattern."}
Untuk informasi selengkapnya, lihat Ganti filter standar menggunakan pencocokan pola RegEx....
Sort
Filter dalam implementasi DotLiquid mengurutkan item dalam array atau koleksi menurut properti tetapi dengan perbedaan ini:Mengikuti perilaku sort_natural Shopify, bukan perilaku short Shopify.
Mengurutkan hanya dalam urutan string-alfanumerik. Untuk informasi selengkapnya, lihat Pengurutan numerik.
Menggunakan urutan tidak peka huruf besar/kecil, bukan urutan peka huruf besar/kecil. Untuk informasi selengkapnya, lihat Filter urutkan tidak mengikuti perilaku kapitalisasi dari spesifikasi Shopify.
Langkah berikutnya
- Bahasa dan contoh Shopify Liquid
- DotLiquid
- DotLiquid - Coba online
- DotLiquid GitHub
- Masalah DotLiquid GitHub
- Pelajari lebih lanjut tentang peta