JSON terbuat dari dua struktur:
- Kumpulan pasangan nama/nilai. Pada beberapa bahasa, hal ini dinyatakan sebagai objek (object), rekaman (record), struktur (struct), kamus (dictionary), tabel hash (hash table), daftar berkunci (keyed list), atau associative array.
- Daftar nilai terurutkan (an ordered list of values). Pada kebanyakan bahasa, hal ini dinyatakan sebagai larik (array), vektor (vector), daftar (list), atau urutan (sequence).
Ia merupakan tipe data object pada bahasa pemrograman javascript. Struktur datanya jelas dan sederhana, serta mudah dibaca baik oleh mesin mau pun manusia.
Oleh karena itu, JSON merupakan cara standar untuk berkomunikasi antar dua bahasa pemrograman yang berbeda.
Bentuk penyusun utama data JSON ada 2, yaitu:
- Objek: didefinisikan dengan tanda kurung kurawal (
{}
) - Array: didefinisikan dengan tanda kurung siku (
[]
)
Perhatikan contoh berikut:
{
"nama": "Mazadie",
"Website": "Jurnalcode",
"Kesukaan": Bakwan,
"Umur": 30,
"hobi": [
"Makan", "Mancing", "ngoding"
]
}
Data JSON di atas bertipe objek karena ia diapit oleh tanda kurung kurawal ({}
). Dan di dalam objek tersebut terdapat 5 buah key atau data, yaitu: nama
, domisili
bertipe data string, usia
bertipe data integer, wni
bertipe data boolean, dan hobi
bertipe data array.
Tidak harus selalu datang dalam bentuk objek, struktur data JSON bisa datang dalam bentuk array:
[
{ "nama": "Mazadie" },
{ "nama": "Jurnalcode" },
{ "nama": "Heru" },
{ "nama": "Rahmat" }
]
Pada contoh JSON di atas, ia adalah array yang memiliki 4 buah item. Kenapa array? Karena ia diapit oleh tanda kurung siku ([]
). Masing-masing item dari array tersebut adalah objek, karena masing-masing itemnya diapit oleh tanda kurung kurawal ([]
).
Parsing JSON String ke PHP
Secara kasat mata jika kita perhatikan struktur data JSON, kita akan dapati bahwa:
- ia sangat mirip dengan struktur array asosiatif pada PHP jika datang dalam bentuk objek (yaitu dengan tanda kurung kurawal)
- dan ia sangat mirip dengan struktur array terindeks pada PHP jika datang dalam bentuk array (yaitu dengan tanda kurung siku)
Pertanyaannya: jika kita memiliki suatu data JSON dalam bentuk string, lalu kita akan membacanya dalam PHP, bagaimana caranya?
Caranya adalah: menggunakan fungsi bawaan PHP bernama json_decode
.
1. Parsing JSON ke Array PHP
Kita harus perhatikan:
- jika objek JSON yang akan kita parsing ternyata dalam bentuk array: maka hasil konversinya akan berupa array pula.
- Sedangkan jika data JSON yang akan kita parsing ternyata dalam bentuk objek, maka hasil konversinya (secara asal) adalah dalam bentuk objek (instan dari kelas stdClass)
Perhatikan contoh berikut:
<?php
$dataJson = "[a, b, c, d, e]";
$data = json_decode($dataJson);
echo implode(" - ", $data);
Perintah di atas akan menghasilkan output seperti berikut :
a-b-c-d-e
2. Parsing JSON ke Objek PHP
Kita coba masuk ke contoh yang kedua: jika ternyata objek JSON yang akan kita parsing datang dalam bentuk objek. Maka PHP (secara asal) akan mengkonversi data tersebut ke dalam objek juga. Lebih tepatnya ke dalam instan dari stdClass.
Perhatikan contoh berikut:
<?php
$json = '{
"nama": "Mazadie",
"Website": "Jurnalcode",
"hobi": [
"Makan", "ngoding", "Jalan"
]
}';
$orang = json_decode($json);
echo "Nama: {$orang->nama} <br>";
echo "Domisili: {$orang->website} <br>";
echo "Hobi: " . implode(", ", $orang->hobi);
Jika program di atas dijalankan, maka akan menghasilkan output seperti berikut :
Nama: Mazadie
Website : Jurnalcode
Hobi: ngoding, makan, berenang
Membuat JSON Dengan PHP
Jika kita ingin membuat data dalam bentuk JSON, kita bisa menggunakan fungsi bawaan PHP bernama json_encode
. Fungsi tersebut adalah kebalikan dari fungsi json_encode
: yaitu ia akan mengubah data objek atau array dalam PHP menjadi data dalam bentuk JSON.
Perhatikan contoh berikut:
<?php
$orang = [
'nama' => 'Mazadie',
'website' => 'Jurnalcode'
];
echo json_encode($orang);
Kode program di atas akan menghasilkan string JSON sebagaimana berikut:
{"nama":"Mazadie","website":"jurnalcode"}
Kesimpulan
JSON adalah struktur data bawaan dalam bahasa pemrograman javascript. Akan tetapi karena ia memiliki struktur yang sederhana dan mudah, ia dijadikan sebagai standar untuk perturakan data antar 2 aplikasi yang berbeda bahkan antar 2 bahasa pemrograman yang berbeda.
Dalam PHP: kita bisa mem-parsing JSON dengan perintah json_decode
dan kita bisa membuat JSON dengan perintah json_encode
.
Komentar