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

Objek PHP kepada objek tatasusunan rentetan json

May 19, 2023 pm 09:10 PM

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;
Salin selepas log masuk

Jalankan kod di atas, anda dapat melihat bahawa outputnya ialah:

{"name":"Tom","age":27}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk

Jalankan kod di atas dan anda boleh melihat bahawa output masih:

{"name":"Tom","age":27}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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;
Salin selepas log masuk

Jalankan kod di atas dan anda boleh melihat bahawa outputnya ialah:

{"name":"Tom","age":27}
Salin selepas log masuk
Salin selepas log masuk
Salin selepas log masuk

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

  1. Bagaimana untuk menangani objek bersarang dalam objek?

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.

  1. Bagaimana untuk menangani objek yang atributnya ialah tatasusunan atau sumber?

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.

  1. Bagaimana untuk menangani objek yang mengandungi bahasa Cina?

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;
Salin selepas log masuk

Jalankan kod di atas dan anda boleh melihat bahawa outputnya ialah:

{"name":"李四","age":27}
Salin selepas log masuk

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!

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

Alat AI Hot

Undresser.AI Undress

Undresser.AI Undress

Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover

AI Clothes Remover

Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool

Undress AI Tool

Gambar buka pakaian secara percuma

Clothoff.io

Clothoff.io

Penyingkiran pakaian AI

AI Hentai Generator

AI Hentai Generator

Menjana ai hentai secara percuma.

Artikel Panas

R.E.P.O. Kristal tenaga dijelaskan dan apa yang mereka lakukan (kristal kuning)
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Tetapan grafik terbaik
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Cara Memperbaiki Audio Jika anda tidak dapat mendengar sesiapa
3 minggu yang lalu By 尊渡假赌尊渡假赌尊渡假赌

Alat panas

Notepad++7.3.1

Notepad++7.3.1

Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina

SublimeText3 versi Cina

Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1

Hantar Studio 13.0.1

Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6

Dreamweaver CS6

Alat pembangunan web visual

SublimeText3 versi Mac

SublimeText3 versi Mac

Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Bagaimana untuk menggunakan tugas-tugas asynchronous dalam PHP untuk operasi tidak menyekat? Bagaimana untuk menggunakan tugas-tugas asynchronous dalam PHP untuk operasi tidak menyekat? Mar 10, 2025 pm 04:21 PM

Artikel ini meneroka pelaksanaan tugas tak segerak dalam PHP untuk meningkatkan respons aplikasi web. Ia memperincikan kaedah seperti beratur mesej, rangka kerja asynchronous (reactphp, swoole), dan proses latar belakang, menekankan amalan terbaik untuk kecekapan

Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Bagaimana untuk melaksanakan beratur mesej (RabbitMQ, Redis) dalam PHP? Mar 10, 2025 pm 06:15 PM

Butiran artikel ini melaksanakan beratur mesej dalam PHP menggunakan RabbitMQ dan Redis. Ia membandingkan seni bina mereka (AMQP vs dalam memori), ciri-ciri, dan mekanisme kebolehpercayaan (pengesahan, urus niaga, kegigihan). Amalan terbaik untuk reka bentuk, kesilapan

Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Apakah piawaian pengekodan PHP terkini dan amalan terbaik? Mar 10, 2025 pm 06:16 PM

Artikel ini mengkaji piawaian pengekodan PHP semasa dan amalan terbaik, memberi tumpuan kepada cadangan PSR (PSR-1, PSR-2, PSR-4, PSR-12). Ia menekankan peningkatan kebolehbacaan dan kebolehkerjaan kod melalui gaya yang konsisten, penamaan bermakna, dan EFF

Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Bagaimana menggunakan refleksi untuk menganalisis dan memanipulasi kod PHP? Mar 10, 2025 pm 06:12 PM

Artikel ini menerangkan API Refleksi PHP, membolehkan pemeriksaan runtime dan manipulasi kelas, kaedah, dan sifat. IT memperincikan kes penggunaan biasa (penjanaan dokumentasi, ORM, suntikan pergantungan) dan memberi amaran terhadap prestasi overhea

Bagaimana saya bekerja dengan sambungan php dan pecl? Bagaimana saya bekerja dengan sambungan php dan pecl? Mar 10, 2025 pm 06:12 PM

Butiran artikel ini memasang dan menyelesaikan masalah PHP, memberi tumpuan kepada PECL. Ia meliputi langkah pemasangan (mencari, memuat turun/menyusun, membolehkan, memulakan semula pelayan), teknik penyelesaian masalah (memeriksa log, mengesahkan pemasangan,

PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. PHP 8 JIT (Just-in-Time) Penyusunan: Bagaimana ia meningkatkan prestasi. Mar 25, 2025 am 10:37 AM

Kompilasi JIT Php 8 meningkatkan prestasi dengan menyusun kod yang sering dilaksanakan ke dalam kod mesin, memberi manfaat kepada aplikasi dengan pengiraan berat dan mengurangkan masa pelaksanaan.

Bagaimana cara menggunakan teknik pengoptimuman memori dalam PHP? Bagaimana cara menggunakan teknik pengoptimuman memori dalam PHP? Mar 10, 2025 pm 04:23 PM

Artikel ini menangani pengoptimuman memori PHP. IT memperincikan teknik seperti menggunakan struktur data yang sesuai, mengelakkan penciptaan objek yang tidak perlu, dan menggunakan algoritma yang cekap. Sumber kebocoran memori biasa (mis., Sambungan yang tidak terkawal, global v

Bagaimanakah saya tetap up-to-date dengan ekosistem dan komuniti php? Bagaimanakah saya tetap up-to-date dengan ekosistem dan komuniti php? Mar 10, 2025 pm 06:16 PM

Artikel ini meneroka strategi untuk kekal semasa dalam ekosistem PHP. Ia menekankan penggunaan saluran rasmi, forum komuniti, persidangan, dan sumbangan sumber terbuka. Penulis menyoroti sumber terbaik untuk mempelajari ciri -ciri baru dan a

See all articles