How to Convert JSON Format into XML Format using Lumen

Chalid Ade Rahman
4 min readOct 11, 2019

--

Photo by Bran Sodre on Unsplash

Setelah membuat sebuah artikel tentang Passing Parameter JSON to Another Function LUMEN for Universal API. Saya dihadapkan pada persoalan baru yaitu kebutuhan return yang berbeda, dimana permintaan dari client diharapkan output dapat berupa JSON format atau XML Format.

Sejauh ini, setiap respons output yang saya kirim adalah mengikuti JSON Format. Sehngga jika diminta untuk menjadikan XML Format akan ada perlakuan khusus. Beberapa kali saya mencari pada laman — laman di google. Cukup sulit mendapatkan referensi cara mengkonversi JSON format kedalam XML Format.

Memang ada banyak referensi salah satunya menggunakan plugin tambahan seperti soapbox/laravel-formatter. Namun ketika saya aplikasikan pada lumen, ada pesan kesalahan seperti berikut :

Karenanya penggunaan plugin ini tidak saya lanjutkan dan mencari cara lain. Hinga akhirnya saya menemukan cara paling sederhana mengkonvesi JSON Format kedalam XML Format tanpa bantuan plugin atau apapun itu. Sebelum kita mulai, pastikan anda menyiapkan requirement dasarnya seperti biasa:

Requirement Dasar

  1. Install composser
  2. install lumen
  3. Install Xampp
  4. Install Postman

Setelah requirement dasar tersebut terpenuhi selanjutnya adalah waktunya kita mengkonfigu. Adapun langkah — langkah yang kita lakukan adalah sebagai berikut :

  1. Membuat Router baru
  2. Membuat Fungsi di Controller
  3. Mengambil data dari JSON Format
  4. Menampilkan data ke format XML
  5. Error Reporting

#1 Membuat Router Baru

Seperti biasa, kita buat sebuah router baru yang nantinya digunakan untuk eksekusi fungsi pada controller lumen. Edit file routes/web.php. Kemudian buat aja seperti berikut :

Pada gambar tersebut terlihat bahwa saya membuat sebuah route untuk menjalankan TrialController pada fungsi try dengan metode post. Anda tentu bebas menentukan nama controllernya. Jika sudah kita lanjut step selanjutnya.

#2 Membuat Fungsi Di Controller

Sebelum membuat fungsi baru di controller, sekarang kita buat dulu controllernya. copy saja exampleController.php kemudian beri nama TrialController.php. Kemudian edit nama fungsinya dan buat fungsi baru dengan nama try seperti berikut :

Dengan pengaturan seperti tersebut, selanjutnya coba kita buka postman. Gunakan metode post dan untuk linknya arahkan ke /try maka akan didapat tampilan seperti berikut. Jangan lupa untuk running lumennya terlebih dahulu ya.

Ini adalah pengaturan paling dasar. Jika sudah berhasil. Selanjutnya mari kita get data terlebih dulu dari json format yang kita inputkan seperti diatas.

#3 Mengambil Data Dari JSON Format

Lakukan sedikit modifikasi pada fungsi TrialController Caranya mudah, modifikasi fungsi try hingga menjadi seperti berikut :

Jika sudah coba buka postman kembali dan running, maka Anda akan mendapat hasil seperti berikut :

Jika sudah berhasil mendapat tampilan seperti diatas, selanjutnya kita lakukan step selanjutnya.

#4 Menampilkan data ke format XML

Setelah berhasil, kita mulai mengkonversi dari JSON Format ke XML Format. Langkahnya mudah, kita hanya perlu mengubah sedikit fungsi try hingga seperti berikut :

Full Code of TrialController.php

Jika sudah, selanjutnya jalankan postman, maka anda akan mendapat tampilan seperti berikut:

Jika sudah seperti diatas, artinya kita sudah berhasil merubah JSON Format ke dalam XML Format.

#5 Error Reporting

Selanjutnya di menu ini akan saya jelaskan error — error apa saja yang sudah saya dapatkan selama melakukan percobaan ini.

#A Fatal error: Class ‘SimpleXMLElement’ not found

  • Kesalahan ini bisa terjadi dikarenakan kesalahan dalam menggnakan SimpleXMLElement pada Lumen sehingga dianggap sebagai Class.
  • Untuk proses solving hanya menambahkan simbol “\” (backslash) pada SimpleXMLElement. sehingga dari seperti ini :

Ubah dan tambahkan backslash pada SimpleXmlElemen Menjadi seperti berikut :

Lalu save dan masalahnya akan terselesaikan.

Jika selama proses percobaan kalian menemukan kendala atau masalah lain, silahkan menambahkan pesan di kolom komentar. mari kita selesaikan bersama.

--

--

Chalid Ade Rahman
Chalid Ade Rahman

Written by Chalid Ade Rahman

PHP Programmer | PT Electronic Data Interchange Indonesia | Question : chalidade@gmail.com

Responses (1)