JSON adalah singkatan dari Notasi Objek JavaScript. JSON adalah format pertukaran data ringan standar yang cepat dan mudah diurai dan dibuat
JSON, seperti XML, adalah format berbasis teks yang mudah ditulis dan mudah dipahami baik oleh manusia maupun komputer, tetapi tidak seperti XML, struktur data JSON menggunakan bandwidth lebih sedikit daripada versi XML-nya. JSON didasarkan pada dua struktur dasar
- Obyek. Ini didefinisikan sebagai kumpulan pasangan kunci/nilai (mis. e. { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }_0). Setiap objek diawali dengan tanda kurung kurawal kiri { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }1 dan diakhiri dengan tanda kurung kurawal kanan { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }2. Beberapa pasangan kunci/nilai dipisahkan dengan koma { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }3
- Himpunan. Ini didefinisikan sebagai daftar nilai yang diurutkan. Array dimulai dengan tanda kurung siku kiri { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }4 dan diakhiri dengan tanda kurung siku kanan { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }5. Nilai dipisahkan dengan koma { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }3
Di JSON, kunci selalu berupa string, sedangkan nilainya dapat berupa { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }7, { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }8, { "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }9 atau 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>0, 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>1 atau bahkan 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>2 atau 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>3. String harus diapit dengan tanda kutip ganda 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>4 dan dapat berisi karakter escape seperti 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>5, 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>6 dan 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>7. Objek JSON mungkin terlihat seperti ini
{ "book": { "name": "Harry Potter and the Goblet of Fire", "author": "J. K. Rowling", "year": 2000, "genre": "Fantasy Fiction", "bestseller": true } }
Sedangkan contoh array JSON akan terlihat seperti ini
{ "fruits": [ "Apple", "Banana", "Strawberry", "Mango" ] }
Tip. Format pertukaran data adalah format teks yang digunakan untuk menukar atau bertukar data antara berbagai platform dan sistem operasi. JSON adalah format pertukaran data yang paling populer dan ringan untuk aplikasi web
Parsing JSON dengan PHP
Struktur data JSON sangat mirip dengan array PHP. PHP memiliki fungsi bawaan untuk menyandikan dan mendekode data JSON. Fungsi-fungsi ini masing-masing adalah 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>8 dan 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>9. Kedua fungsi hanya berfungsi dengan data string yang disandikan UTF-8
Mengkodekan Data JSON dalam PHP
Dalam PHP fungsi 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>_8 digunakan untuk menyandikan nilai ke format JSON. Nilai yang dikodekan dapat berupa tipe data PHP apa pun kecuali sumber daya, seperti database atau pegangan file. Contoh di bawah ini menunjukkan cara menyandikan larik asosiatif PHP menjadi objek JSON
65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>
Output dari contoh di atas akan terlihat seperti ini
{"Petrus". 65,"Harry". 80,"Yohanes". 78,"Clark". 90}
Demikian pula, Anda dapat menyandikan larik terindeks PHP ke dalam larik JSON, seperti ini
Output dari contoh di atas akan terlihat seperti ini
["Merah", "Hijau", "Biru", "Oranye", "Kuning"]
Anda juga dapat memaksa fungsi 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>_8 untuk mengembalikan larik terindeks PHP sebagai objek JSON dengan menggunakan opsi 2, seperti yang ditunjukkan pada contoh di bawah ini
Output dari contoh di atas akan terlihat seperti ini
{"0". "Merah", "1". "Hijau", "2". "Biru", "3". "Oranye"}
Seperti yang Anda lihat pada contoh di atas, array non-asosiatif dapat dikodekan sebagai array atau objek. Namun, array asosiatif selalu dikodekan sebagai objek
Mendekode Data JSON di PHP
Mendekode data JSON sesederhana menyandikannya. Anda dapat menggunakan fungsi PHP 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>_9 untuk mengonversi string yang disandikan JSON menjadi tipe data PHP yang sesuai. Contoh berikut menunjukkan cara mendekode atau mengonversi objek JSON menjadi objek PHP
Output dari contoh di atas akan terlihat seperti ini
objek(stdClass)#1 (4) { ["Peter"]=> int(65) ["Harry"]=> int(80) ["John"]=> int(78) ["Clark"]=>
Secara default fungsi 65, "Harry"=>80, "John"=>78, "Clark"=>90); echo json_encode($marks); ?>_9 mengembalikan objek. Namun, Anda dapat secara opsional menentukan parameter kedua 5 yang menerima nilai boolean yang bila disetel sebagai 6 objek JSON didekodekan menjadi array asosiatif. Ini adalah _7 secara default. Ini sebuah contoh
Output dari contoh di atas akan terlihat seperti ini
array(4) { ["Peter"]=> int(65) ["Harry"]=> int(80) ["John"]=> int(78) ["Clark"]=> int(90) }
Sekarang mari kita lihat contoh yang akan menunjukkan kepada Anda cara mendekode data JSON dan mengakses elemen individual dari objek atau larik JSON di PHP
Peter; // Output: 65 echo $obj->Harry; // Output: 80 echo $obj->John; // Output: 78 echo $obj->Clark; // Output: 90 ?>
Anda juga dapat mengulang melalui data yang didekodekan menggunakan 8 loop, seperti ini
$value){
echo $key . "=>" . $value . "
";
}
echo "";
// Decode JSON data to PHP object
$obj = json_decode($json);
// Loop through the object
foreach($obj as $key=>$value){
echo $key . "=>" . $value . "
";
}
?>
Mengekstraksi Nilai dari Data JSON Bersarang di PHP
Objek dan larik JSON juga dapat disarangkan. Objek JSON dapat secara sewenang-wenang berisi objek JSON lainnya, array, array bersarang, array objek JSON, dan seterusnya. Contoh berikut akan menunjukkan cara mendekode objek JSON bersarang dan mencetak semua nilainya dalam PHP