Dalam pembangunan PHP, menukar objek kepada rentetan JSON atau objek tatasusunan JSON ialah tugas yang sangat biasa. Kedua-dua rentetan JSON dan objek tatasusunan JSON ialah format pertukaran data standard yang membenarkan pertukaran data antara platform dan bahasa pengaturcaraan yang berbeza dan sangat mudah dibaca dan dihuraikan.
Artikel ini akan memperkenalkan cara menukar objek kepada rentetan JSON atau objek tatasusunan JSON dalam PHP. Kami akan menerangkan proses ini melalui contoh dan membincangkan beberapa isu biasa yang berkaitan dengan proses ini.
Bantah kepada rentetan JSON
Dalam PHP, anda boleh menukar objek kepada rentetan JSON melalui fungsi json_encode terbina dalam. Fungsi ini menerima objek sebagai hujah dan mengembalikan perwakilan rentetan JSONnya. Berikut ialah contoh:
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person('Tom', 27); $jsonString = json_encode($person); echo $jsonString;
Jalankan kod di atas, anda dapat melihat bahawa outputnya ialah:
{"name":"Tom","age":27}
Anda boleh melihat bahawa objek $person berjaya ditukar menjadi rentetan JSON. Dalam rentetan JSON, setiap sifat dalam objek ditukar menjadi pasangan nilai kunci dan kunci menggunakan nama harta tersebut.
Perlu diambil perhatian bahawa jika sifat itu peribadi atau dilindungi, fungsi json_encode tidak akan dapat mengaksesnya. Jika anda perlu memasukkan atribut ini dalam rentetan JSON, anda boleh menentukan fungsi toArray dalam kelas untuk menukar atribut yang perlu dieksport ke dalam tatasusunan bersekutu, dan kemudian hantar tatasusunan ini kepada fungsi json_encode.
class Person { private $name; private $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } public function toArray() { return array( 'name' => $this->name, 'age' => $this->age ); } } $person = new Person('Tom', 27); $jsonString = json_encode($person->toArray()); echo $jsonString;
Jalankan kod di atas dan anda boleh melihat bahawa output masih:
{"name":"Tom","age":27}
Objek kepada objek tatasusunan JSON
Selain menukar objek kepada JSON Selain rentetan, anda juga boleh menukarnya menjadi objek tatasusunan JSON. Apabila menukar objek kepada objek tatasusunan JSON, setiap sifat ditukar kepada pasangan nilai kunci dan kunci menggunakan nama harta tersebut.
Dalam PHP, proses menukar objek kepada objek tatasusunan JSON boleh dicapai dengan menukar objek kepada tatasusunan dan kemudian menghantar tatasusunan kepada fungsi json_encode. Berikut ialah contoh:
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person('Tom', 27); $jsonArray = json_encode((array)$person); echo $jsonArray;
Jalankan kod di atas dan anda boleh melihat bahawa outputnya ialah:
{"name":"Tom","age":27}
Anda boleh melihat bahawa objek $person berjaya ditukar menjadi objek tatasusunan JSON. Dalam objek tatasusunan JSON, setiap sifat dalam objek ditukar menjadi pasangan nilai kunci dan kunci menggunakan nama harta tersebut.
Perlu diambil perhatian bahawa apabila menukar objek kepada tatasusunan, sifat peribadi atau dilindungi akan diabaikan. Jika anda perlu memasukkannya dalam objek tatasusunan JSON, anda boleh melakukannya dengan mentakrifkan fungsi toArray dalam kelas, sama seperti proses menukar objek kepada rentetan JSON.
Soalan Lazim
Jika objek mengandungi objek lain, anda boleh menukar secara rekursif objek ini kepada tatasusunan atau tatasusunan bersekutu dalam fungsi toArray, dan kemudian gabungkan tatasusunan ini menjadi tatasusunan besar. Apabila menghantar tatasusunan besar ini kepada fungsi json_encode, ia akan menukar tatasusunan ini secara rekursif kepada objek JSON atau objek tatasusunan JSON.
Jika objek mengandungi atribut yang merupakan tatasusunan atau sumber, atribut ini tidak boleh ditukar terus kepada objek JSON atau objek tatasusunan JSON. Dalam proses menukar objek kepada tatasusunan, anda boleh memanggil fungsi json_encode pada atribut ini untuk menukarnya menjadi objek JSON atau objek tatasusunan JSON, dan kemudian menggabungkannya menjadi tatasusunan besar sebagai satu elemen.
Jika objek mengandungi rentetan Cina, fungsi json_encode akan mengekodnya ke dalam pengekodan Unikod secara lalai. Jika anda perlu mengekodnya ke dalam rentetan UTF-8, anda boleh menghantar pilihan JSON_UNESCAPED_UNICODE ke fungsi json_encode.
class Person { public $name; public $age; public function __construct($name, $age) { $this->name = $name; $this->age = $age; } } $person = new Person('李四', 27); $jsonString = json_encode($person->toArray(), JSON_UNESCAPED_UNICODE); echo $jsonString;
Jalankan kod di atas dan anda boleh melihat bahawa outputnya ialah:
{"name":"李四","age":27}
Dalam pembangunan PHP, menukar objek kepada rentetan JSON atau objek tatasusunan JSON ialah tugas asas. Artikel ini memperkenalkan cara untuk melaksanakan proses ini dalam PHP dan membincangkan beberapa isu biasa yang berkaitan dengan proses ini. Saya harap ia akan membantu pembangun PHP.
Atas ialah kandungan terperinci Objek PHP kepada objek tatasusunan rentetan json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!