Tutorial-Parsing JSON
Tutorial-Parsing JSON
BETTER-B
2011
1|Page
Amandement Records
2|Page
CHAPTER 1: WHAT IS JSON?
JSON ( JavaScript Object Notation), adalah sebuah standarisasi dokumentasi yang digunakan untuk
pertukaran komunikasi data secara online. Sama seperti XML (eXtensible Markup Language), keduanya
adalah standar yg saat ini banyak digunakan .
Kelebihan JSON dibandingkan XML adalah, JSON mendukung penggunaan beberapa jenis tipe data,
mulai dari String, Integer, Boolean, Double, Long dan sebagainya. Selain itu dari sisi pengolahan (parsing)
jauh lebih cepat dibandingkan XML.
Ciri khas dokumentasi JSON adalah diawali dengan { dan diakhiri dengan }, untuk mendifinisikan array
digunakan [ sebagai awalan dan ] sebagai akhiran, untuk memisahkan antara satu variable dengan yang
lainnya digunakan tanda , sedangkan untuk memisahkan antara nama variable dengan isi/nilainya
digunakan tanda :. Untuk mendeklarasikan sebuah nama variable harus diawali dengan “ dan diakhiri
juga dengan “.
{
“contoh”: “JSON”,
“array”: [
{
“nomor”: 1,
“detail”: “Satu”
},
{
“nomor”: 2,
“detail”: “Dua”
}
]
}
3|Page
CHAPTER 2: LIBRARY FOR PARSING JSON
Untuk melakukan parsing dokumen JSON, diperlukan sebuah library eksternal khusus yang tersedia
dalam lisensi open source. Khusus untuk BlackBerry, JSON baru mulai diperkenalkan pada OS versi 5.0
atau yang lebih baru. Sehingga untuk menjaga kompatibilitas dengan OS versi sebelumnya, dalam setiap
project selalu disertakan library external ini.
Note: org.json.me adalah package default library external yang tersedia, sedangkan untuk menjaga
kompatibilitas dengan OS versi 5 atau yang lebih baru, penamaan package diubah menjadi bee.json.me.
- bee.json.me
- JSONArray.java
- JSONException.java
- JSONObject.java
- JSONString.java
- JSONTokener.java
- XML.java*
- XMLTokener.java*
Note: *Class XML.java & XMLTokener.java digunakan untuk melakukan konversi dari JSON menjadi XML,
sehingga parsing yg dilakukan menggunakan teknik parsing ala XML, meskipun dokumentasinya
disediakan dalam format JSON.
4|Page
CHAPTER 3: HOW TO PARSING JSON?
Untuk melakukan parsing JSON, ada beberapa konsep yang perlu dipahami yaitu: JSON Tokener & JSON
Object, JSON Array. Tokener adalah mekanisme yang mendefinisikan struktur keseluruhan dari sebuah
dokumen JSON yang terdiri dari berbagai Object (variable). Sedangkan Object pada dasarnya adalah
pendeklarasian variable itu sendiri (yang terdiri nama variable dan isi/nilainya). Dalam sebuah object
bisa berisi sebuah object pula. Object yang terbesar adalah keseluruhan dokumentasi JSON itu sendiri.
Sedangkan Array adalah kumpulan dari beberapa object dengan tipe data yang sama.
JSONTokener
{
“contoh”: “JSON”,
“array”: [
{ JSONObject
“nomor”: 1,
“detail”: “Satu”
},
{
“nomor”: 2, JSONArray
“detail”: “Dua”
}
]
}
Jadi untuk melakukan parsing yang paling pertama dilakukan adalah mendefinisikan JSONTokener, dan
kemudian dari JSONTokener tersebut dibuatlah sebuah JSONObject. Dua tahap awal ini adalah tahap
yang selalu dilakukan dalam sebuah proses parsing JSON. Sedangkan untuk melakukan parsing ke bagian
lain yang lebih kecil hingga ke variable, diperlukan beberapa tahap tergantung struktur yang dibuat.
Untuk lebih detailnya silahkan perhatikan contoh berikut ini:
{
"nilai": 1,
"komentar": "Lulus belajar parsing JSON",
"status": true,
"longitude": -1060235653434
}
Asumsikan dokumentasi JSON diatas sudah tersedia dalam bentuk data string dengan nama variable
data. Untuk memparsing dokumen diatas tahap-tahap yang dilakukan adalah sebagai berikut:
1. Buat JSONTokener
JSONTokener jtokener = new JSONTokener(data);
5|Page
2. Buat JSONObject
JSONObject jobject = new JSONObject(jtokener);
3. Ambil Data:
Dalam contoh dokumentasi diatas, dokumen JSON berisi 4 variable dengan tipe data yang
beragam, yaitu nilai (integer), komentar (String), status (boolean), longitude (long).
{
"total_hari": 7,
"total_libur": 2,
"hari": [
{
"nama":"Senin",
"tanggal":"14-02-2010"
},
{
"nama":"Selasa",
"tanggal":"15-02-2010"
},
{
"nama":"Rabu",
"tanggal":"16-02-2010"
},
{
"nama":"Kamis",
"tanggal":"17-02-2010"
},
{
"nama":"Jumat",
"tanggal":"18-02-2010"
},
{
"nama":"Sabtu",
"tanggal":"19-02-2010"
},
{
"nama":"Minggu",
"tanggal":"20-02-2010"
}
6|Page
],
"ekstra":{
"libur":[
{
"hari": "Selasa 15-02-2010",
"info": "libur nasional"
},
{
"hari": "Minggu 20-02-2010",
"info": "libur sedunia kalo ini sih. hehehehe"
}
]
}
}
Jika diperhatikan struktur dokumen JSON diatas begitu kompleks, didalamnya terdapat variable tunggal
maupun array. Untuk memparsingnya tahap 1 & 2 seperti pada contoh parsing sebelumnya tetap
dilakukan.
1. Buat JSONTokener
JSONTokener jtokener = new JSONTokener(data);
2. Buat JSONObject
JSONObject jobject = new JSONObject(jtokener);
3. Ambil Data:
//parsing variable total hari & total libur
int total_hari = jobject.optInt("total_hari");
int total_libur = jobject.optInt("total_libur");
//parsing array 1
JSONArray array1 = jobject.optJSONArray("hari");
String[] nama = null;
String[] tanggal = null;
//baca array
int i = 0;
while(i<array1.length()){
nama[i] = array1.optJSONObject(i).optString("nama");
tanggal[i] = array1.optJSONObject(i).optString("tanggal");
i++;
}
}
7|Page
//parsing array 2
JSONObject root = jobject.optJSONObject("ekstra");
JSONArray array2 = root.optJSONArray("libur");
String[] hari = null;
String[] info = null;
//baca array
int i = 0;
while(i<array2.length()){
hari[i] = array2.optJSONObject(i).optString("hari");
info[i] = array2.optJSONObject(i).optString("info");
i++;
}
}
Yang perlu diperhatikan saat akan melakukan parsing variable yang berada didalam sebuah array adalah
terlebih dahulu mendefinisikan array tersebut dalam bentuk JSONArray. Selanjutnya setelah JSONArray
terbentuk dilakukan seleksi dalam bentuk perulangan (looping while/for) untuk mengambil masing-
masing object yang terdapat didalamnya.
Setelah seluruh variable berhasil diparsing, pengolahan selanjutnya tergantung keperluan masing-
masing.
8|Page