Android Native akses JSON data dengan Library Volley

Tutorial ini membahas bagaimana android native mengakses data JSON dari internet (web service). Ada beberapa pilihan library yang dapat digunakan untuk akses data JSON yaitu menggunakan library Volley atau Retrofit, pada kesempatan ini tutorial akses data JSON menggunakan library Volley.

Berikut langkah-langkah akses data JSON untuk ditampilkan dalam object ListView pada AndroidActivity

  1. Tambahkan library Volley dan GSON dalam Gradle Script aplikasi :
    dependencies {
        ...
        compile 'com.google.code.gson:gson:2.6.2'
        compile 'com.android.volley:volley:1.0.0'
    }
    
  2. Tentukan data JSON yang akan diakses, misal data propinsi dalam bentuk format JSONdata json propinsi wilayah indonesia

    misal alamat URL data JSON http://api.nurulfikri.ac.id/data1.php

  3. Definisikan data POJO yang digunakan untuk mapping data dari JSON ke bentuk GSON sesuai dengan format data yang diberikan, dalam contoh diatas class POJO bernama Propinsi.java

    package com.devxabata.android.labs;
    import com.google.gson.annotations.SerializedName;
    /**
     * Created by rojulman
     */
    public class JPropinsi {
    
        @SerializedName("id")
        public int id;
        @SerializedName("nama")
        public String nama;
        @SerializedName("latitude")
        public double latitude;
        @SerializedName("longitude")
        public double longitude;
    
        @Override
        public String toString() {
            return nama;
        }
    }
    
  4. Berikut kode program pada AndroidActivity : method onCreate

    public class ListPropinsiActivity extends AppCompatActivity {
    
        private static final String ENDPOINT = "http://api.nurulfikri.ac.id/data1.php";
        private RequestQueue requestQueue;
        private Gson gson;
        public ListView listView;
        public List<Propinsi> list_propinsi;
    
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            ....
    // definisi antrian akses data web service
            requestQueue = Volley.newRequestQueue(this);
            // definisikan objek gsonbuilder yang bertugas melakukan deserialisasi data json ke gson
            GsonBuilder gsonBuilder =  new GsonBuilder();
            // inisialisasi obj gson
            gson = gsonBuilder.create();
    
            // inisialisasi object listView , pastikan anda telah menambahkan object ListView pada layout xml activity
            listView = (ListView) findViewById(R.id.list_propinsi);
    
            // ambil data
            fetchPropinsi();
           }
    
  5. Berikut method proses menggunakan library Volley pada AndroidActivity

    private void fetchPropinsi() {
            StringRequest request = new StringRequest(Request.Method.GET, ENDPOINT, onPostsLoaded, onPostsError);
            requestQueue.add(request);
        }
    
        private final Response.Listener<String> onPostsLoaded = new Response.Listener<String>() {
            @Override
            public void onResponse(String response) {
                list_propinsi = Arrays.asList(gson.fromJson(response, Propinsi[].class));
    
                Log.i("ListPropinsiActivity", "JUMLAH PROPINSI DILOAD : " + list_propinsi.size() );
                for (Propinsi prop : list_propinsi) {
                    Log.i("ListPropinsiActivity", prop.id + ": " + prop.nama);
                }
    
                ArrayAdapter<Propinsi> adapter =
                        new ArrayAdapter<Propinsi>(getApplicationContext(),
                                android.R.layout.simple_list_item_1,list_propinsi);
                listView.setAdapter(adapter);
            }
        };
    
        private final Response.ErrorListener onPostsError = new Response.ErrorListener() {
            @Override
            public void onErrorResponse(VolleyError error) {
                Log.e("ListPropinsiActivity", error.toString());
            }
        };
    

Selamat mencoba

Post a Response