Mengenal FastJSON, JSON Parser untuk Java dan Android

Di dalam pemrograman Java untuk webservice ataupun untuk Android, ada banyak library untuk melakukan konversi JSON ke bentuk POJO (Plain Old Java Object) ataupun dari POJO ke bentuk JSON. Diantaranya ada Jackson, Gson, Boon, ataupun JSON encoder native buatan JSON.org . Dan kali ini, kita pun mengenal FastJSON. Sebuah library JSON parser yang dibuat oleh Alibaba, perusahaan yang bergerak di bidang e-commerce di China. Library ini sudah tersedia secara open source di Github yang dapat kalian akses disini:

https://github.com/alibaba/fastjson

Namun halaman di Github tersebut, baik dokumentasi ataupun catatan rilisnya masih ada yang menggunakan bahasa China. Sehingga kita memerlukan bantuan Google Chrome untuk melakukan translasi ke bahasa Inggris. Yaitu dengan klik kanan pada halaman yang berbahasa China, kemudian pilih “Translate to English” sehingga seluruh halaman berubah menjadi berbahasa Inggris.

fastjson_translate1

 

fastjson_translate2

Selanjutnya, kita lihat apa sih FastJSON itu ? Jika kita lihat dari deskripsinya yang ada di halaman Githubnya.

“FastJSON adalah library Java yang dapat digunakan untuk mengkonversi objek Java (POJO) ke dalam bentuk JSON. Ini juga dapat dipakai untuk mengkonversi dari JSON bentuk String ke bentuk objek Java yang sesuai.”

Tujuan pembuatan FastJSON ini juga dijabarkan di dalam halaman Github mereka yaitu : - Memberikan performa terbaik disisi server ataupun sisi Android client. - Memberikan konversi sederhana fungsi toJSONString()dan parseObject() untuk konversi objek Java ke bentuk JSON dan sebaliknya. - Memperbolehkan objek Java yang tidak dapat dimodifikasi sebelumnya , dikonversi menjadi bentuk JSON atau sebaliknya. - Dukungan ekstensif untuk tipe Java Generics. - Mendukung kustomisasi representasi dari isi objek Java. - Mendukung objek Java yang kompleks (dengan susunan inheritance yang dalam dan penggunaan ekstensif dari tipe data generic).

Untuk menggunakan library FastJSON, kita bisa melakukan impor dengan konfigurasi Maven ataupun Gradle JCenter (Android) berikut.

fastjson_set2

fastjson_set1

FastJSON yang dikhususkan untuk penggunaan di Android Project baru keluar sekitar bulan April 2016 ini. Dan tentu saja sudah dilakukan optimasi dan peningkatan agar sesuai berjalan di lingkungan Android. Seperti yang telah tercantum di dalam catatan rilis mereka ini.

fastjson_release

FastJSON library untuk Android dengan mengkomparasi dengan library JSON Parser lainnya. Dan hasilnya dapat dilihat pada tabel di bawah ini. Sedangkan jika kalian ingin melihat lebih lengkap, dapat langsung berkunjung ke halaman release notes dari halaman Github mereka di:

https://github.com/alibaba/fastjson/releases

Tapi jangan lupa gunakan fitur translasi Google Chrome yang telah saya jelaskan sebelumnya ya :)

benchmark1

Contoh Penggunaan untuk Android Project.

Pada contoh penggunaaan berikut, kita mengkonversi sebuah JSON String ke bentuk POJO. Dan juga sebaliknya. Tentu saja kita memerlukan library FastJSON sudah dimasukkan ke dalam projek ini. Dan dalam hal contoh ini, kita menggunakan konfigurasi FastJSON melalui Gradle untuk dipakai di dalam fungsi atau project Android.

Baca juga: Membuat Game Android Mudah dengan Intel XDK dan Construct 2

Pertama-tama kita akan melakukan konversi dari sebuah JSON String yang berbentuk seperti di bawah ini. Ke dalam bentuk POJO (Plain Old Java Object) . Bentuk JSON nya adalah seperti yang terdapat di bawah ini:

Dari struktur JSON di atas, kita melihat ada JSON Object yang di dalamnya terdapat JSON Array dengan field JSON bernama "kontak_pmi" . Dan di dalam JSON Array tersebut terdapat JSON Object yang terdiri dari beberapa field datanya. Dengan berpatokan pada struktur tersebut, kita dapat membuat dua buah kelas POJO, yaitu kelas POJO yang merepresentasikan JSON Object di dalam JSON Array "kontak_pmi" dan satu lagi kelas POJO untuk menampung JSON Array "kontak_pmi" yang akan berbentuk ArrayList. Bentuk objek Java POJO nya dapat dilihat di bawah ini.

Bentuk dari POJO dan nama nilai-nilai String di dalamnya kita sesuaikan dengan nama field yang ada di JSON yang akan kita konversi, agar konversinya dapat berjalan dengan lancar. Dan di dalam POJO tersebut, tidak lupa kita berikan getter dan setter untuk mengambil nilai JSON yang telah dikonversi tersebut.

Selanjutnya adalah kita lakukan konversi pada String JSON tersebut agar kita dapat mengambil nilainya dari KontakModel.class dan juga dari List . Dengan menggunakan fungsi di bawah ini:

Dari kode di atas, kita melakukan konversi dari JSON String yang berisi kontak PMI, ke dalam representasi POJO nya yang bernama KontakModel.class. Setelah itu kita ambil nilai dari JSON Array yang telah ditampung ke dalam List . Dan kemudian kita tampilkan isi nilainya satu per satu dengan menggunakan fungsi Log.w() yang ada di Android.

Selanjutnya kita akan mengkonversi balik Java objek POJO tersebut ke dalam bentuk JSON nya. Kita masih menggunakan patokan kelas yang sama untuk membuat JSON kontak PMI tersebut, yaitu menggunakan kelas Kontak Model yang di dalamnya berisi ArrayList dari KontakPMI.class . Potongan kodenya dapat dilihat berikut ini :

Dari kode di atas, kita akan menghasilkan sebuah String JSON yang mana isinya sesuai dengan bentuk JSON yang kita pakai pada contoh artikel ini. Untuk langkah berikutnya, kalian bisa melakukan eksperimen sendiri dengan memanfaatkan dokumentasi yang telah disediakan oleh FastJSON di halaman Github nya:

https://github.com/alibaba/fastjson/wiki/Samples-DataBind

Untuk implementasi lebih lanjut, karena ini library JSON Parser, biasanya dipakai pada project-project yang menggunakan komunikasi dari REST API webservice ke Android client (aplikasi) via koneksi internet. Data yang diperoleh biasanya berbentuk JSON dan kita dapat memanfaatkan library dari FastJSON ini untuk melakukan konversi JSON tersebut.

Salah satu implementasi dari libray FastJSON ini adalah mengkombinasikannya dengan library Volley. Yang dapat dilihat pada contoh sampel kode via link berikut:

https://gitlab.com/gulajava.mini/CekBintangKelahiranOpens

Atau jika kalian menggunakan library networking selain Volley, yaitu Retrofit. Bisa memanfaatkan custom converter yang dapat dilihat pada Snippet Code berikut ini:

https://gitlab.com/gulajava.mini/RamalanCuacaBukaan/snippets/18362 https://gitlab.com/gulajava.mini/RamalanCuacaBukaan/snippets/18359 https://gitlab.com/gulajava.mini/RamalanCuacaBukaan/snippets/18360 https://gitlab.com/gulajava.mini/RamalanCuacaBukaan/snippets/18361

Dan selamat bereksperimen dan mencoba :)

Dilihat 6431 kali

Is this helpful?

Share This Post