Rumah >pembangunan bahagian belakang >masalah PHP >Objek PHP kepada objek tatasusunan rentetan json

Objek PHP kepada objek tatasusunan rentetan json

PHPz
PHPzasal
2023-05-06 09:17:06644semak imbas

PHP ialah bahasa skrip sebelah pelayan yang popular yang biasa digunakan untuk pembangunan web. Dalam PHP, objek sering perlu diproses, seperti menukar objek kepada rentetan atau tatasusunan JSON. Artikel ini akan memperkenalkan cara menukar objek PHP kepada rentetan format JSON, tatasusunan dan objek, dan membincangkan cara menangani masalah biasa.

1. Tukar objek PHP kepada rentetan format JSON

Gunakan fungsi json_encode PHP untuk menukar objek PHP kepada rentetan format JSON. Sebagai contoh, anda boleh mencipta objek dalam kod PHP:

class Person {
    public $name;
    public $age;
    public function __construct($name, $age) {
        $this->name = $name;
        $this->age = $age;
    }
}

$person = new Person('张三', 30);

dan kemudian gunakan fungsi json_encode untuk menukar objek kepada rentetan format JSON:

$json = json_encode($person);

Kod ini menukar objek $person sebagai ditunjukkan di bawah rentetan format JSON:

{"name":"张三","age":30}

Ambil perhatian bahawa jika objek mempunyai sifat peribadi atau dilindungi, ia tidak akan disertakan dalam rentetan JSON. Jika anda ingin menyertakan sifat ini, anda boleh menambah fungsi pengambil awam pada kelas atau mengisytiharkan sifat sebagai awam.

2. Tukar objek PHP kepada tatasusunan

Gunakan fungsi json_decode PHP untuk menyahkod rentetan format JSON kepada tatasusunan PHP. Sebagai contoh, anda boleh menggunakan json_encode untuk menukar objek PHP kepada rentetan format JSON, dan kemudian gunakan json_decode untuk menyahkod rentetan JSON ke dalam tatasusunan PHP:

$array = json_decode($json, true);

Di sini, hantarkan hujah kedua (benar) kepada json_decode fungsi, untuk menyahkod hasil menjadi tatasusunan bersekutu. Jika parameter ini tidak diluluskan, hasilnya akan dinyahkodkan sebagai objek. Jika anda menukar objek PHP kepada tatasusunan, outputnya adalah seperti berikut:

[
    "name" => "张三",
    "age" => 30
]

3. Menukar objek PHP kepada objek

Kaedah menukar objek PHP kepada objek adalah sangat serupa dengan kaedah menukar kepada tatasusunan. Hanya gunakan fungsi json_decode tanpa melepasi parameter kedua. Contohnya, untuk contoh di atas:

$obj = json_decode($json);

Ini akan mengembalikan objek PHP dengan dua sifat. Untuk mengakses sifat objek, anda boleh menggunakan operator anak panah (->):

echo $obj->name; // 输出"张三"

Jika objek mempunyai sifat yang dilindungi, anda boleh menggunakan fungsi getter untuk mengaksesnya.

4 Masalah dan penyelesaian biasa

Apabila menukar objek PHP kepada rentetan format JSON, anda mungkin menghadapi beberapa masalah biasa. Berikut ialah beberapa penyelesaian:

  1. Rujukan bulat: Jika terdapat rujukan bulat antara objek, fungsi json_encode mungkin menghadapi masalah. Sebagai contoh, jika seseorang mempunyai anak, dan kanak-kanak itu mempunyai atribut "ibu bapa" yang menunjuk kepada orang itu, rujukan pekeliling akan berlaku. Untuk mengelakkan ini, anda boleh melaksanakan kaedah __toString dalam kelas anda dan menggunakan kaedah ini untuk mengembalikan rentetan format JSON.
  2. Format tarikh: Secara lalai, fungsi json_encode menukar objek tarikh kepada format tarikh ISO 8601, seperti "2021-05-26T13:22:49+08:00". Jika anda perlu menyesuaikan format tarikh, anda boleh menggunakan kaedah format objek DateTime.
  3. Isu pengekodan: Jika anda ingin menukar aksara bukan ASCII kepada rentetan format JSON, sila pastikan fail PHP menggunakan pengekodan UTF-8 dan tetapkan parameter kedua fungsi json_encode kepada JSON_UNESCAPED_UNICODE. Ini akan memastikan bahawa aksara Unicode tidak terlepas.

Ringkasan

Dalam PHP, sangat mudah untuk menukar objek kepada rentetan format JSON, tatasusunan atau objek. Ini boleh dilakukan menggunakan fungsi json_encode dan json_decode. Walau bagaimanapun, dalam amalan, anda perlu memberi perhatian kepada isu seperti rujukan pekeliling, format tarikh dan pengekodan. Selagi anda memahami masalah ini dan menggunakan penyelesaian yang sepadan, anda boleh berurusan dengan objek PHP dengan mudah.

Atas ialah kandungan terperinci Objek PHP kepada objek tatasusunan rentetan json. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
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