Bagaimanakah Saya Boleh Mengekodkan Objek PHP dengan Ahli Persendirian ke JSON?

Mary-Kate Olsen
Lepaskan: 2024-11-24 18:25:12
asal
1001 orang telah melayarinya

How Can I Encode PHP Objects with Private Members to JSON?

Mengekodkan Objek PHP dengan Ahli Peribadi Menggunakan JSON

Apabila mengekodkan objek PHP kepada JSON, anda mungkin menghadapi cabaran jika objek tersebut mengandungi ahli peribadi. Secara lalai, ahli persendirian tidak boleh diakses di luar kelas.

Fungsi Pengekodan dan Ahli Peribadi

Coretan kod yang disediakan menggambarkan fungsi pengekodan tersuai yang berulang melalui sifat objek dan menyimpannya dalam objek $json. Walau bagaimanapun, pendekatan ini mempunyai had apabila objek mengandungi objek bersarang.

Melaksanakan Antara Muka JsonSerializable

Untuk mengatasi cabaran ini, adalah disyorkan untuk melaksanakan antara muka JsonSerializable. Antara muka ini mentakrifkan satu kaedah, jsonSerialize, yang membolehkan anda mengawal data yang disirikan.

Menyesuaikan Serialisasi

Dengan melaksanakan jsonSerialize, anda boleh menentukan sifat yang sepatutnya disertakan dalam perwakilan JSON. Kod berikut menunjukkan cara untuk melaksanakan antara muka ini dan mengembalikan data yang dikehendaki:

class Item implements \JsonSerializable {
    private $var;
    private $var1;
    private $var2;

    public function __construct() {
        // ...
    }

    public function jsonSerialize() {
        $vars = get_object_vars($this);

        return $vars;
    }
}
Salin selepas log masuk

Menggunakan json_encode

Setelah kaedah jsonSerialize dilaksanakan, json_encode akan mensirikan dengan betul objek, termasuk ahli persendirian seperti yang dinyatakan dalam pelaksanaan jsonSerialize anda.

Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Objek PHP dengan Ahli Persendirian ke JSON?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:php.cn
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Artikel terbaru oleh pengarang
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan