Pengekodan Ahli Kelas Persendirian dengan JSON dalam PHP
Dalam PHP, pengekodan ahli kelas ke dalam JSON boleh menjadi rumit apabila mereka peribadi. Pertimbangkan senario di mana anda ingin mengekod data objek, yang termasuk ahli persendirian.
Pada mulanya, percubaan boleh dilakukan untuk mengatasi halangan ini dengan menggunakan fungsi encodeJSON tersuai untuk mengekstrak dan mengekod pembolehubah persendirian secara manual:
public function encodeJSON() { foreach ($this as $key => $value) { $json->key = $value; } return json_encode($json); }
Walau bagaimanapun, pendekatan ini goyah apabila objek mengandungi objek bersarang dalam ahlinya. Untuk menangani perkara ini, penyelesaian yang lebih komprehensif diperlukan.
JsonSerializable Solution
Pendekatan elegan untuk mensiri objek dengan sifat peribadi adalah melalui antara muka JsonSerializable. Dengan melaksanakan antara muka ini, anda boleh mentakrifkan kaedah JsonSerialize tersuai untuk mengawal data yang dikembalikan untuk bersiri:
class Item implements \JsonSerializable { private $var; private $var1; private $var2; public function __construct() { // ... } public function jsonSerialize() { $vars = get_object_vars($this); return $vars; } }
Dengan pelaksanaan ini, json_encode kini boleh mensiri objek anda dengan betul bersama-sama dengan data peribadi dan awamnya.
Atas ialah kandungan terperinci Bagaimanakah Saya Boleh Mengekodkan Ahli Kelas Persendirian ke dalam JSON dalam PHP?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!