Memproses Data JSON Pada Android

Free Image Hosting at www.ImageShack.us

JSON sepertinya sudah menjadi format data standar dalam komunikasi data antara API di internet. Semakin banyak website yang menyediakan API, menggunakan JSON sebagai format data yang dikirimkan. Untuk itu, rasanya cocok tepat kalau sekarang kita belajar cara mengolah data JSON di Android.

Sebelum kita memulai ada baiknya anda mengerti terlebih dahulu, apa itu JSON.

Perhatikan contoh JSON berikut:

{
	"pelatih":{
		"nama": "adi saka",
		"kota": "Langit",
		"murid": [
			{
				"nama": "sila gading",
				"umur": 6
			},
			{
				"nama": "putri tunggal",
				"umur": 8
			},
			{
				"nama": "anka satu",
				"umur": 7
			}
		]
	}
}

Dari kode di atas, bisa dilihat bahwa ada pelatih yang memiliki properti nama, kota, dan murid. Data pelatih ini berupa object. Dari mana kita bisa tahu? hal ini diindikasikan pada penggunaan karakter {}. Lalu untuk murid, berisikan array object, yang ditunjukkan pada penggunaan karakter []. Untuk mengetahui lebih lanjut, silahkan pelajari diagram dan notasi-notasi yang ada pada website resmi JSON.

Sekarang kita masuk ke kode android. Kita akan menggunakan kode JSON di atas sebagai bahan. Yang pertama, bagaimana cara mengambil informasi pelatih, seperti nama dan kota?. Di android, proses manipulasi JSON ada pada paket org.json.*. Untuk membaca data pelatih, kita buat terlebih dahulu representasi object-nya:

Membuat representasi object dari JSON

JSONObject object = new JSONObject(jsonString);

Membuat representasi object dari elemen pelatih

JSONObject objData = object.getJSONObject("pelatih");

Membaca properti dari elemen pelatih

Log.i("Log", "Nama: " + objData.getString("nama"));
Log.i("Log", "Kota: " + objData.getString("kota"));

Cukup sederhana bukan?

Berikutnya, cara membaca elemen array JSON. Pada kasus kita, membaca elemen murid dari pelatih. Caranya juga cukup sederhana. Berikut step2nya:

Membuat representasi object dari elemen murid. Dalam hal ini, representasi JSONArray

JSONArray dataMurid = objData.getJSONArray("murid");

Lakukan looping data array murid

for(int i = 0; i < dataMurid.length(); i++){
	//di sini nantinya kita akan memproses elemen object masing2 murid
}

Membuat representasi object masing2 elemen anak dari murid dan membaca propertinya

JSONObject objMurid = dataMurid.getJSONObject(i);
Log.i("Log", "  Nama: " + objMurid.getString("nama"));
Log.i("Log", "  Umur: " + objMurid.getString("umur"));

Perhatikan, cara membaca elemen anak dari murid, mirip dengan cara membaca pelatih. Hal ini, karena pelatih dan murid keduanya merupakan object. Seperti ditunjukkan pada notasi mereka yang berupa {}

Sangat sederhana kan? nah, ini kode lengkapnya:

String jsonString = "{\"pelatih\":{\"nama\":\"adi saka\",\"kota\":\"Langit\",\"murid\":[{\"nama\":\"sila gading\",\"umur\":6},{\"nama\":\"putri tunggal\",\"umur\":8},{\"nama\":\"anka satu\",\"umur\":7}]}}";
try {
	JSONObject object = new JSONObject(jsonString);
	JSONObject objData = object.getJSONObject("pelatih");
	Log.i("Log", "Nama: " + objData.getString("nama"));
	Log.i("Log", "Kota: " + objData.getString("kota"));
	Log.i("Log", "Murid: ");
	JSONArray dataMurid = objData.getJSONArray("murid");
	for(int i = 0; i < dataMurid.length(); i++){
		JSONObject objMurid = dataMurid.getJSONObject(i);
		Log.i("Log", "  Nama: " + objMurid.getString("nama"));
		Log.i("Log", "  Umur: " + objMurid.getString("umur"));
	}
	
} catch (JSONException e) {
	// TODO Auto-generated catch block
	e.printStackTrace();
}

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.

  • Dede

    thankyou mas.. :)

  • desiana putri

    kalo yang di looping pelatihnya gimana?

    • maksudnya yang seperti ini: bayu.freelancer.web.id/2012/07/20/melakukan-iterasi-pada-object-json/ ?

  • Pingback: Melakukan Iterasi Pada Object JSON « Freelancer's Playground!()

  • riri

    gannn kalau isi jsonnya langsung kyakgini.

    [{“nama”:”Masjid Agung Banyumas “,”jenis”:”Masjid”,”desa”:”Sudagaran”,”kecamatan”:”Banyumas”,”kabupaten”:”Banyumas”,”provinsi”:”Jawa Tengah”,”lat”:”-7.516823″,”long”:”109.293161″}]

  • Gz

    Thenks Mass .. Boleh Minta Tutor Yang Lainnya .. ( Galau Jadi Musisi )