Pengertian Json Encode dan Json Decode Serta Penerapan nya di Php

JSON singkatan dari JavaScript Object Notation adalah suatu format ringkas pertukaran data komputer. Formatnya berbasis teks dan terbaca-manusia serta digunakan untuk merepresentasikan struktur data sederhana dan larik asosiatif (disebut objek). Format JSON sering digunakan untuk mentransmisikan data terstruktur melalui suatu koneksi jaringan pada suatu proses yang disebut serialisasi.
 
Aplikasi utamanya adalah pada pemrograman aplikasi web AJAX dengan berperan sebagai alternatif terhadap penggunaan tradisional format XML. Walaupun JSON didasarkan pada subset bahasa pemrograman JavaScript (secara spesifik, edisi ketiga standar ECMA-262, Desember 1999 [1]) dan umumnya digunakan dengan bahasa tersebut, JSON dianggap sebagai format data yang tak tergantung pada suatu bahasa. Kode untuk pengolahan dan pembuatan data JSON telah tersedia untuk banyak jenis bahasa pemrograman. Situs json.org menyediakan daftar komprehensif pengikatan JSON yang tersedia, disusun menurut bahasa.

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).

Struktur-struktur data ini disebut sebagai struktur data universal. Pada dasarnya, semua bahasa pemprograman moderen mendukung struktur data ini dalam bentuk yang sama maupun berlainan. Hal ini pantas disebut demikian karena format data mudah dipertukarkan dengan bahasa-bahasa pemprograman yang juga berdasarkan pada struktur data ini.

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: namadomisili 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.

image

Mazadie

Assalamualikum .. Saya adalah Seorang Web Developer Asal Riau.

Komentar