PHP Academy · Pelajaran

Pengekodan dan Penyahkodan JSON

Tukar tatasusunan PHP kepada JSON dan hurai respons JSON dengan json_encode/json_decode.

Pelajaran 1 daripada 413 langkah

Pengekodan dan Penyahkodan JSON ialah pelajaran PHP Academy percuma di CoddyKit. Ini ialah pelajaran 1 daripada 4. Anda boleh membaca keseluruhan pelajaran di bawah secara percuma — kemudian berlatih secara praktikal dalam pelayar menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7. Pelajaran ini merupakan sebahagian daripada laluan pembelajaran PHP Academy, dan kemajuan anda disegerakkan merentas web serta aplikasi CoddyKit. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah JSON?

JSON (JavaScript Object Notation) ialah format data ringan yang digunakan untuk komunikasi API dan fail konfigurasi. PHP mempunyai fungsi terbina dalam untuk mengekod dan menyahkodnya.

json_encode()

Menukar nilai PHP (susunan, objek, skalar) kepada rentetan JSON.

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

json_decode()

Menghuraikan rentetan JSON dan mengembalikan nilai PHP. Secara lalai, fungsi ini mengembalikan objek stdClass; hantar true sebagai argumen kedua untuk mendapatkan susunan bersekutu.

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

Memformat JSON Dengan Cantik

Gunakan bendera JSON_PRETTY_PRINT untuk memformat output supaya mudah dibaca manusia.

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

Bendera json_encode yang Berguna

Bendera biasa: JSON_UNESCAPED_UNICODE (kekalkan UTF-8 seperti asal), JSON_UNESCAPED_SLASHES (tiada garis songsang sebelum /), JSON_THROW_ON_ERROR (mencetuskan pengecualian apabila gagal).

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

Pengendalian Ralat

Semak json_last_error() selepas pengekodan atau penyahkodan, atau gunakan JSON_THROW_ON_ERROR untuk mendapatkan pengecualian secara automatik.

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

Mengekodkan Objek

Objek dikodkan sebagai objek JSON. Secara lalai, hanya sifat awam disertakan. Laksanakan JsonSerializable untuk mengawal proses 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 Bersarang

JSON menyokong struktur bersarang. Tatasusunan PHP yang bersarang secara mendalam dikodkan menjadi objek atau tatasusunan JSON bersarang dengan lancar.

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

Kedalaman Penyahkodan

Parameter ketiga json_decode menetapkan kedalaman maksimum rekursi (lalai 512). JSON yang sangat dalam mungkin memerlukan had yang lebih tinggi.

JSON_NUMERIC_CHECK

Bendera JSON_NUMERIC_CHECK menukar rentetan angka kepada nombor semasa pengekodan. Gunakan dengan berhati-hati — bendera ini mungkin merosakkan nombor telefon.

Menstrim JSON Besar

Untuk fail JSON yang sangat besar, gunakan pustaka penghurai penstriman (contohnya halaxa/json-machine) dan bukannya memuatkan keseluruhan fail dengan json_decode.

Ringkasan

json_encode menukar nilai PHP kepada rentetan JSON. json_decode menghuraikan JSON. Gunakan JSON_THROW_ON_ERROR untuk pengendalian ralat yang selamat.

Semakan Pantas

Bagaimanakah anda mendapatkan tatasusunan bersekutu daripada json_decode?

Percuma untuk bermula

Pelajari PHP dengan tutor kecerdasan buatan — percuma

Tulis dan jalankan kod sebenar dalam pelayar anda, dapatkan bantuan segera daripada tutor kecerdasan buatan yang tersedia 24/7, dan sambung semula dari tempat anda berhenti di web atau dalam aplikasi.

Kursus
49
Pelajaran
195

Soalan Lazim

Adakah pelajaran “Pengekodan dan Penyahkodan JSON” percuma?

Ya — teks penuh “Pengekodan dan Penyahkodan JSON” boleh dibaca secara percuma di web ini. Untuk berlatih secara interaktif menggunakan penyunting kod terbina dalam dan tutor kecerdasan buatan 24/7, serta membuka kunci baki kursus PHP Academy, tingkat taraf kepada CoddyKit PRO. Kursus PHP Academy merangkumi sejumlah 4 pelajaran.

Apakah yang akan saya pelajari dalam “Pengekodan dan Penyahkodan JSON”?

Tukar tatasusunan PHP kepada JSON dan hurai respons JSON dengan json_encode/json_decode. Anda berlatih PHP Academy menggunakan kod praktikal yang dijalankan terus dalam pelayar, manakala tutor kecerdasan buatan 24/7 menjawab soalan anda semasa anda mengikuti pelajaran.

Adakah saya memerlukan pengalaman untuk memulakan PHP Academy?

Tiada pengalaman terdahulu diperlukan. Pembelajaran PHP Academy di CoddyKit disusun untuk pelajar daripada peringkat pemula hingga lanjutan, jadi anda boleh bermula di sini atau dari awal dan belajar mengikut kadar anda sendiri. Ini ialah pelajaran 1 daripada 4.

Berapa lamakah pelajaran “Pengekodan dan Penyahkodan JSON” diambil?

Kebanyakan pelajaran CoddyKit mengambil masa kira-kira 5–10 minit. Setiap pelajaran ringkas dan interaktif, jadi anda boleh membuat kemajuan secara berterusan dan menyambung tepat dari tempat anda berhenti di web atau aplikasi.

Bolehkah saya menulis dan menjalankan kod dalam pelajaran PHP Academy ini?

Ya. Setiap pelajaran PHP Academy menyertakan penyunting kod terbina dalam, jadi anda boleh menulis dan menjalankan kod sebenar terus dalam pelayar serta menerima maklum balas kecerdasan buatan serta-merta — tanpa memerlukan persediaan setempat.

Semua pelajaran dalam kursus ini

  1. Pengekodan dan Penyahkodan JSON
  2. Membuat Permintaan HTTP dengan cURL
  3. Mengendalikan Respons dan Ralat API
  4. Membina Klien API Ringkas
← Kembali ke PHP Academy