0Pricing
PHP Academy · Pelajaran

Encoding dan Decoding JSON

Konversikan array PHP ke JSON dan uraikan respons JSON dengan json_encode/json_decode.

Encoding dan Decoding JSON adalah pelajaran PHP Academy gratis di CoddyKit. Ini adalah pelajaran 1 dari 4. Kamu bisa membaca pelajaran lengkapnya di bawah secara gratis — lalu praktikkan langsung di browser dengan editor kode bawaan dan tutor AI 24/7. Ini adalah bagian dari jalur belajar PHP Academy, dan progresmu tersinkronisasi di web dan aplikasi CoddyKit. Kursus PHP Academy mencakup 4 pelajaran total.

Apa Itu JSON?

JSON (Notasi Objek JavaScript) adalah format data ringan yang digunakan untuk komunikasi API dan berkas konfigurasi. PHP memiliki fungsi bawaan untuk menyandikan dan menguraikannya.

json_encode()

Mengubah nilai PHP (array, objek, skalar) menjadi string JSON.

<?php
$data   = ["name" => "Alice", "age" => 30, "active" => true];
$json   = json_encode($data);
echo $json; // {"name":"Alice","age":30,"active":true}

json_decode()

Mengurai string JSON dan mengembalikan nilai PHP. Secara bawaan, fungsi ini mengembalikan objek stdClass; berikan true sebagai argumen kedua untuk array asosiatif.

<?php
$json = '{"name":"Alice","age":30}';
$obj  = json_decode($json);          // stdClass
$arr  = json_decode($json, true);    // associative array
echo $arr["name"]; // "Alice"

Memformat JSON agar Mudah Dibaca

Gunakan flag JSON_PRETTY_PRINT untuk memformat output agar mudah dibaca manusia.

<?php
$json = json_encode(["a" => 1, "b" => 2], JSON_PRETTY_PRINT);
echo $json;
// {
//     "a": 1,
//     "b": 2
// }

Flag json_encode yang Berguna

Flag umum: JSON_UNESCAPED_UNICODE (pertahankan UTF-8 apa adanya), JSON_UNESCAPED_SLASHES (tanpa garis miring terbalik sebelum /), JSON_THROW_ON_ERROR (melempar pengecualian saat terjadi kegagalan).

<?php
$json = json_encode(["url" => "https://example.com/path"],
    JSON_UNESCAPED_SLASHES | JSON_UNESCAPED_UNICODE);

Penanganan Kesalahan

Periksa json_last_error() setelah melakukan pengodean atau penguraian, atau gunakan JSON_THROW_ON_ERROR untuk mendapatkan pengecualian secara otomatis.

<?php
try {
    $data = json_decode($input, true, 512, JSON_THROW_ON_ERROR);
} catch (\JsonException $e) {
    echo "Invalid JSON: ".$e->getMessage();
}

Mengodekan Objek

Objek dikodekan sebagai objek JSON. Secara bawaan, hanya properti publik yang disertakan. Terapkan JsonSerializable untuk mengendalikan serialisasi.

<?php
class Point implements \JsonSerializable {
    public function __construct(
        private float $x, private float $y
    ) {}
    public function jsonSerialize(): mixed {
        return ["x" => $this->x, "y" => $this->y];
    }
}
echo json_encode(new Point(1.0, 2.5)); // {"x":1,"y":2.5}

Struktur Bertingkat

JSON mendukung struktur bertingkat. array PHP yang bertingkat dalam akan dikodekan menjadi objek atau array JSON bertingkat dengan lancar.

<?php
$order = [
    "id"    => 1,
    "items" => [
        ["sku" => "A1", "qty" => 2],
        ["sku" => "B3", "qty" => 1],
    ],
];
echo json_encode($order, JSON_PRETTY_PRINT);

Kedalaman Penguraian

Parameter ke-3 dari json_decode menetapkan kedalaman rekursi maksimum (bawaan 512). JSON yang sangat dalam mungkin memerlukan batas yang lebih tinggi.

JSON_NUMERIC_CHECK

Flag JSON_NUMERIC_CHECK mengonversi string numerik menjadi angka selama pengodean. Gunakan dengan hati-hati—flag ini dapat merusak nomor telepon.

Mengalirkan JSON Berukuran Besar

Untuk file JSON yang sangat besar, gunakan pustaka pengurai berbasis aliran (misalnya halaxa/json-machine), bukan memuat seluruh file dengan json_decode.

Ringkasan

json_encode mengonversi nilai PHP menjadi string JSON. json_decode mengurai JSON. Gunakan JSON_THROW_ON_ERROR untuk penanganan kesalahan yang aman.

Pemeriksaan Singkat

Bagaimana cara mendapatkan array asosiatif dari json_decode?

Pertanyaan yang Sering Diajukan

Apakah pelajaran “Encoding dan Decoding JSON” gratis?

Ya — teks lengkap “Encoding dan Decoding JSON” gratis dibaca di sini di web. Untuk praktiknya secara interaktif (editor kode bawaan dan tutor AI 24/7) dan buka sisa kursus PHP Academy, upgrade ke CoddyKit PRO. Kursus PHP Academy mencakup 4 pelajaran total.

Apa yang akan aku pelajari di “Encoding dan Decoding JSON”?

Konversikan array PHP ke JSON dan uraikan respons JSON dengan json_encode/json_decode. Kamu berlatih PHP Academy dengan kode praktik yang langsung kamu jalankan di browser, dan tutor AI 24/7 menjawab pertanyaanmu saat kamu mengerjakan pelajaran ini.

Apakah aku perlu pengalaman untuk memulai PHP Academy?

Tidak diperlukan pengalaman sebelumnya. PHP Academy di CoddyKit dirancang untuk pemula hingga pelajar tingkat lanjut, jadi kamu bisa memulai di sini atau dari awal dan belajar sesuai kecepatan kamu sendiri. Ini adalah pelajaran 1 dari 4.

Berapa lama pelajaran “Encoding dan Decoding JSON” memakan waktu?

Sebagian besar pelajaran CoddyKit memakan waktu sekitar 5–10 menit. Setiap pelajaran ringkas dan interaktif, jadi kamu membuat kemajuan stabil dan melanjutkan dari tempat kamu tinggalkan di web dan aplikasi.

Bisakah aku menulis dan menjalankan kode dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan editor kode bawaan, jadi kamu menulis dan menjalankan kode nyata langsung di browser dan mendapatkan umpan balik AI instan — tidak diperlukan penyiapan lokal.

Semua pelajaran dalam kursus ini

  1. Encoding dan Decoding JSON
  2. Membuat Permintaan HTTP dengan cURL
  3. Menangani Respons dan Error API
  4. Membangun Klien API Sederhana
← Kembali ke PHP Academy