Melakukan Iterasi Pada Object JSON

Pada tulisan terdahulu, saya sudah menjelaskan bagaimana cara memproses data JSON pada android. Tapi, ternyata ada trik yang terlewat. yaitu, bagaimana melakukan iterasi pada data JSON yang berupa object, bukan array.

Perhatikan contoh kode berikut:

{
  "paket": {
    "3437": "Pistol",
    "6434": "Pisau",
    "7343": "Panah",
    "9342": "Parang"
  }
}

Terdapat data paket, dimana di dalamnya terdapat sekumpulan data yang direpresentasikan dalam bentuk properti, bukan array. Cara memprosesnya cukup sederhana. Logikanya adalah:

  1. Ambil key dari object JSON yang ingin diproses
  2. lakukan looping terhadap daftar key yang diperoleh di atas
  3. untuk setiap loop, ambil nilai dari key yang dibaca

Bagaimana implementasinya dalam bentuk kode? sama cukup sederhana. Perhatikan potongan kode berikut:

JSONObject jsonObject = new JSONObject(stringJSON);
JSONObject paket = jsonObject.getJSONObject("paket");

Kode di atas sama seperti tulisan sebelumnya. Sama-sama digunakan untuk mengubah string JSON menjadi represtasi object di java. Kemudian mengambil data object paket yang nantinya akan kita proses.

Iterator<String> iter = paket.keys();
Map<String,String> map = new HashMap<String,String>();

Pada baris ini, kita mengambil key dari object paket dan dimasukkan kedalam Iterator bernama iter. Variable map akan kita gunakan untuk menyimpan data paket.

Log.i("JSONTEST", "Isi paket:");
while(iter.hasNext()){
	String key = (String)iter.next();
	String value = paket.getString(key);
	map.put(key,value);
	Log.i("JSONTEST", "  " + key + ": " + value);
}

Ini adalah bagian terakhir dari potongan kode kita. Bagian ini bertujuan untuk mengambil nilai object dari key yang didapat sebelumnya. Berikut contoh output dari LogCat:

07-20 16:20:30.894: I/JSONTEST(11739): Isi paket:
07-20 16:20:30.898: I/JSONTEST(11739):   9342: Parang
07-20 16:20:30.898: I/JSONTEST(11739):   7343: Panah
07-20 16:20:30.898: I/JSONTEST(11739):   6434: Pisau
07-20 16:20:30.898: I/JSONTEST(11739):   3437: Pistol

Bagaimana? masih ada yang belum jelas dari cara memproses data JSON pada android? silahkan ditanyakan saja di kotak komentar. Kalau saya mengerti, akan saya bantu jawab.

Author: Arief Bayu Purwanto

Hello, my name is Arief Bayu Purwanto, a 24 years old father of a beautiful daughter. Interested in online programming, linux, games, and reading. Currently working on kapanlagi.com as junior developer. I live in a relatively quite and cool place called Malang. I'm available for some freelance stuff as well as some consulting job. You can see my portofolio for some previous task I've finished and some other information related to my capability. Btw, I'm plurking here.

  • adha

    ka aku adha yang mau aku tanyakan disini , aku buat aplikasi login yg dimana webservice untuk meneriam login harus berbentuk json , nah bagaimana mengubah string ke json lalu mengpost kan ke webservice