Cara Mengembalikan JSON dari Skrip PHP

Ketika halaman web berkomunikasi dengan server tanpa memuat ulang (AJAX), atau ketika aplikasi ponsel mengambil data dari server, format yang paling umum dipakai adalah JSON. Artikel ini membahas cara membuat dan membaca JSON di PHP.

Mengubah Data PHP Menjadi JSON

<?php
$data = ["nama" => "Budi", "umur" => 25, "aktif" => true];
echo json_encode($data);
// {"nama":"Budi","umur":25,"aktif":true}
?>

Contoh Kasus: Membuat API Sederhana

Saat membuat endpoint yang diakses lewat AJAX, kirim header yang tepat lalu keluarkan JSON:

<?php
header("Content-Type: application/json");
$produk = [
    ["id" => 1, "nama" => "Kopi"],
    ["id" => 2, "nama" => "Teh"]
];
echo json_encode($produk);
?>

Membaca JSON Menjadi Data PHP

<?php
$json = '{"nama":"Budi","umur":25}';
$obj = json_decode($json);        // sebagai objek
echo $obj->nama;                   // "Budi"

$arr = json_decode($json, true);  // sebagai array asosiatif
echo $arr["nama"];                // "Budi"
?>

Parameter kedua true menentukan apakah hasilnya berupa array asosiatif atau objek.

Menangani JSON dari Aplikasi Klien

<?php
$masukan = json_decode(file_get_contents("php://input"), true);
if (json_last_error() !== JSON_ERROR_NONE) {
    echo "JSON tidak valid";
}
?>

Kesalahan Umum

  • Lupa mengirim header Content-Type: application/json pada endpoint API.
  • Tidak memeriksa json_last_error() sehingga data rusak lolos begitu saja.
  • Teks non-UTF-8 membuat json_encode() mengembalikan false.

Kesimpulan

Gunakan json_encode() untuk mengirim data dan json_decode() untuk membacanya. Saat membuat API, sertakan header JSON yang benar dan selalu periksa json_last_error() untuk menangani data yang cacat.

Referensi: untuk penjelasan lebih mendalam, kunjungi dokumentasi resmi PHP (php.net).

Baca Juga

Ali Akbar

Software Developer yang fokus mengembangkan aplikasi berbasis Web dan Desktop. Senang mempelajari teknologi baru terutama di bidang web design dan web development.

View all posts by Ali Akbar →

Tinggalkan Balasan

Alamat email Anda tidak akan dipublikasikan. Ruas yang wajib ditandai *