Last Updated on 8 years by Mas Herdi
Bagi kalian developer Android pasti sudah sering sekali berinteraksi dengan Web Services atau API, dan dengan bantuan library network yang paling canggih, a.k.a. Retrofit, tentunya akan menjadi sangat mudah karena Retrofit memungkinkan kita untuk mengkonsumsi hasil API tersebut dan memetakannya langsung ke dalam POJO (Plain Old Java Object) untuk dapat kita olah di aplikasi.
Namun, saat pertama kali membuatnya kita harus memetakan response dari API tersebut (baik JSON ataupun XML) ke dalam Java object sesuai format yang didukung oleh Retrofit. Tentunya hal ini cukup merepotkan jika dilakukan secara manual. Memang ada beberapa website online yang menyediakan tools untuk memetakan JSON/XML ke dalam POJO, tapi itu pun masih cukup merepotkan karena kita harus copy paste manual. Bagaimana cara mudahnya? Dengan memakai plugin di Android Studio. 🙂
Tutorial Convert XML/JSON Response ke POJO Langsung di Android Studio
- Pertama-tama buka Android Studio, dan kemudian buka Preferences nya
- Setelah itu masuk ke bagian Plugins dan search > POJO
- Kemudian akan muncul plugin bernama POJO GENERATOR
- Nah, selanjutnya Install plugin POJO Generator tersebut, ditempat saya karena sudah terinstall maka tulisannya uninstall seperti gambar di atas.
- Kalian akan diminta untuk Restart Android Studio, maka Restart lah
- Magic :))
Itu tadi baru cara penginstallannya, sekarang cara penggunaannya. Jika Restart sudah selesai, lihat di bagian kanan atas di bawah menu Help, akan ada dua buah kotak baru berwarna biru dan hijau. Itulah tampilan interface dari plugin yang baru kita install.
Untuk menggunakannya kita bisa klik tombol tersebut, biru untuk XML, dan hijau untuk JSON. Jika kita klik, maka akan muncul interface seperti di bawah ini (contoh kita akan mengkonversi data JSON) :
Kita bisa meng-copy pastekan data JSON yang ingin kita convert ke dalam kotak interface tersebut. Dan selanjutnya yang harus kita isi adalah bagian Destination, di situ kita bisa browse folder project Android kita, dan pilih folder/package untuk meletakkan file POJO yang akan digenerate nantinya, kalau saya biasanya diletakkan pada folder model, sehingga package nya pun juga akan bernama model.
Untuk source nya bisa kalian isi dengan nama file/data yang kalian inginkan, misal Model.java.
Kemudian root class nya diisi nama class tanpa akhiran java, misal Model.
Jika sudah, click OK. Dan voila inilah file yang digenerate dari POJO Generator.
package id.silkroad.android.model; import javax.annotation.Generated; import android.os.Parcel; import android.os.Parcelable; import android.os.Parcelable.Creator; import com.google.gson.annotations.Expose; import com.google.gson.annotations.SerializedName; @Generated("org.jsonschema2pojo") public class Model implements Parcelable { @SerializedName("glossary") @Expose private Glossary glossary; public final static Parcelable.Creator<Model> CREATOR = new Creator<Model>() { @SuppressWarnings({ "unchecked" }) public Model createFromParcel(Parcel in) { Model instance = new Model(); instance.glossary = ((Glossary) in.readValue((Glossary.class.getClassLoader()))); return instance; } public Model[] newArray(int size) { return (new Model[size]); } } ; /** * * @return * The glossary */ public Glossary getGlossary() { return glossary; } /** * * @param glossary * The glossary */ public void setGlossary(Glossary glossary) { this.glossary = glossary; } public void writeToParcel(Parcel dest, int flags) { dest.writeValue(glossary); } public int describeContents() { return 0; } }
Ini adalah salah satu dari beberapa file yang digenerate. List-nya ada pada gambar di bawah ini :
Yang terakhir, apabila ada annotations yang missing pada file hasil generated. Kalian bisa memasukkan dependencies berikut pada file build.gradle module Android kalian.
//... compile 'com.google.code.gson:gson:2.7' compile 'org.glassfish:javax.annotation:10.0-b28' //...
Apabila masih ada error yang merah-merah, maka bisa didelete saja annotation tersebut, karena aslinya juga tidak begitu penting. 🙂
That’s all semoga membantu dalam mengkonsumsi API menggunakan Retrofit.