Ini adalah catatan singkat mengenai cara parse Json di Android Menggunakan Volley. Volley adalah sebuah library HTTP yang memudahkan kita untuk membuat koneksi jaringan antara android dengan HTTP menjadi lebih mudah tanpa perlu mengetikkan baris kode yang banyak. Libary Volley pada saat catatan ini dibuat baru risil versi 1.0.0 dan bisa didownload melalui repository Google pada link Github berikut ini.
Cara Parse JSON di Android Menggunakan Volley
Pertama yang perlu dilakukan agar kita bisa menggunakan library Volley adalah dengan menambahkan Volley ke dependency aplikasi Android yang sedang kita kerjakan. Dependency tersebut terletak pada file build.gradle di folder app pada folder project kita. Baris kode yang perlu ditambahakan adalah di bawah ini:
compile 'com.android.volley:volley:1.0.0'
Setelah kode di atas ditambahkan selanjutnya sinkronisasikan gradle dan tunggu sampai selesai.
Cara Menggunakan Volley
Setelah librari Volley ditambahkan pada project aplikasi android maka akan muncul beberapa fungsi baru yang dibawa oleh Volley. Fungsi-fungsi tersebut antara lain: StringRequest, JsonObjectRequest, JsonArrayRequest, dan lain-lain.
Contoh kode parse JSON Object dan Array menggunakan Volley adalah di bawah ini:
StringRequest stringRequest = new StringRequest(url_json, new Response.Listener<String>() { @Override public void onResponse(String response) { try { JSONObject jsonObj = new JSONObject(response); JSONArray result = jsonObj.getJSONArray("items"); for (int i = 0; i < result.length(); i++) { JSONObject c = result.getJSONObject(i); titles.add(c.getString("title")); link.add(c.getString("link")); } } catch (JSONException e) { e.printStackTrace(); } } }, new Response.ErrorListener() { @Override public void onErrorResponse(VolleyError error) { } }); RequestQueue requestQueue = Volley.newRequestQueue(Search.this); requestQueue.add(stringRequest);
Contoh di atas menunjukkan sebuah proses parse data json dari url_json menggunakan Volley. Data yang diparse merupakan json object yang di dalamnya berisi beberapa json array.
Baris kode
JSONObject jsonObj = new JSONObject(response);
merupakan proses pembuatan JsonObject dari String yang didapat dari response server. String response tersebut diubah menjadi data bertipe JsonObject.
Baris kode
JSONArray result = jsonObj.getJSONArray("items");
merupakan proses pengambilan data JsonArray dengan key items dari JsonObject yang telah dibuat sebelumnya.
Proses selanjutnya adalah membuat proses looping. Proses ini digunakan untuk mengambil semua data Json Array secara otomatis tanpa perlu mengambilnya secara manual dengan menuliskan index arraynya satu persatu.
Baris kode
JSONObject c = result.getJSONObject(i);
adalah proses pengambilan data json object menggunakan index dengan pengulangan sebanyak data yang ada pada json array items. Selanjutnya, untuk mengambil data dari json tersebut adalah dengan menggunakan baris kode yang ini
(c.getString("title")
yang akan mengambil data sesuai urutan looping i dengan key data title.
Baris kode
RequestQueue requestQueue = Volley.newRequestQueue(Search.this);
adalah proses pembuat daftar request. Ini yang membuatku tertarik dengan Volley karena requestnya dibuat queuee. Ketika kita memiliki banyak request tidak langsung dieksekusi secara bersamaan tetapi diurutkan berdasarkan nomor antriannnya (queue). BarisÂ
Search.this
 adalah nama Activity. Jika pembuatan request dilakukan di dalam onCreate maka bisa diganti dengan this saja.
Baris kode terakhir
requestQueue.add(stringRequest);
adalah proses penambahan stringrequest ke dalam daftar antrian request. Kita bisa menambahkan banyak string request. Contohnya:
requestQueue.add(stringRequest1); requestQueue.add(stringRequest2); requestQueue.add(stringRequest3); requestQueue.add(stringRequest4); requestQueue.add(stringRequest5);
Semua string request yang ditambakan pada daftar antrian akan diproses secara berurutan. Tidak diproses secara bersamaan.