Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menukar objek kepada tatasusunan rentetan json dalam php

Bagaimana untuk menukar objek kepada tatasusunan rentetan json dalam php

PHPz
Lepaskan: 2023-04-19 14:06:00
asal
594 orang telah melayarinya

Dalam pembangunan web, menukar objek kepada tatasusunan rentetan JSON ialah operasi yang sangat asas. Dalam PHP, kita boleh menukar objek kepada tatasusunan rentetan JSON dengan menggunakan fungsi terbina dalam. Seterusnya, kami akan memperkenalkan secara terperinci cara menukar objek kepada tatasusunan rentetan JSON.

Pertama, kita perlu memahami apa itu JSON. JSON (JavaScript Object Notation) ialah format pertukaran data ringan yang biasa digunakan untuk penghantaran data rangkaian. Ia ialah format data biasa yang sangat biasa dalam AJAX dan Restful API. Format JSON sangat serupa dengan format objek JavaScript, jadi kami boleh menyelesaikan masalah pemindahan data merentas bahasa dengan menukar objek JavaScript kepada JSON dan kemudian menghantarnya ke pelayan.

Dalam PHP, kita boleh menggunakan fungsi json_encode untuk menukar objek kepada tatasusunan rentetan JSON. Sebagai contoh, kami mempunyai tatasusunan bersekutu PHP berikut:

$data = array(
    'name' => 'Bob',
    'age' => '25',
    'gender' => 'Male'
);
Salin selepas log masuk

Gunakan fungsi json_encode untuk menukarnya menjadi rentetan dalam format JSON Kodnya adalah seperti berikut:

$json_data = json_encode($data);
echo $json_data;
Salin selepas log masuk

The hasil keluaran ialah:

{"name":"Bob","age":"25","gender":"Male"}
Salin selepas log masuk
Salin selepas log masuk

Anda boleh melihat dengan jelas bahawa kami menukar tatasusunan asal kepada tatasusunan rentetan JSON yang terdiri daripada pasangan nilai kunci.

Apabila berurusan dengan objek, kita perlu menukar objek kepada tatasusunan terlebih dahulu sebelum mengekodnya dalam JSON. Berikut ialah contoh kelas yang dipanggil Person:

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

$person = new Person('Bob',25,'Male');
Salin selepas log masuk

Kita boleh menukar kelas ini kepada tatasusunan yang mengandungi atribut:

$person_arr = array(
    'name' => $person->name,
    'age' => $person->age,
    'gender' => $person->gender
);
Salin selepas log masuk

Sekarang, kita boleh menggunakan fungsi json_encode kepada Tatasusunan ditukarkan kepada tatasusunan rentetan JSON:

$json_person = json_encode($person_arr);
echo $json_person;
Salin selepas log masuk
Salin selepas log masuk

Hasil output ialah:

{"name":"Bob","age":"25","gender":"Male"}
Salin selepas log masuk
Salin selepas log masuk

Seperti yang anda lihat, kami telah berjaya menukarkan objek Orang kepada tatasusunan rentetan JSON.

Apabila kita berurusan dengan objek bersarang, kita perlu menukar secara rekursif semua sifat bersarang kepada tatasusunan. Sebagai contoh, kami mentakrifkan objek lain yang dipanggil Alamat:

class Address {
    public $country;
    public $state;
    public $city;
    
    function __construct($country,$state,$city) {
        $this->country = $country;
        $this->state = $state;
        $this->city = $city;
    }
}

$address = new Address('China','Sichuan','Chengdu');
Salin selepas log masuk

Sekarang, kami menjadikan objek ini sebagai harta objek Orang:

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

$person = new Person('Bob',25,'Male',$address);
Salin selepas log masuk

Untuk menukar objek Orang kepada JSON Tatasusunan rentetan, kita perlu terlebih dahulu menukar objek Alamat menjadi tatasusunan:

$address_arr = array(
    'country' => $address->country,
    'state' => $address->state,
    'city' => $address->city
);
Salin selepas log masuk

Kemudian, teruskan menukar objek Orang menjadi tatasusunan:

$person_arr = array(
    'name' => $person->name,
    'age' => $person->age,
    'gender' => $person->gender,
    'address' => $address_arr
);
Salin selepas log masuk

Akhir sekali, gunakan json_encode untuk tukarkannya kepada tatasusunan rentetan JSON:

$json_person = json_encode($person_arr);
echo $json_person;
Salin selepas log masuk
Salin selepas log masuk

Hasil output ialah:

{
    "name":"Bob",
    "age":"25",
    "gender":"Male",
    "address":{
        "country":"China",
        "state":"Sichuan",
        "city":"Chengdu"
    }
}
Salin selepas log masuk

Seperti yang anda lihat, kami telah berjaya menukar objek bersarang menjadi tatasusunan rentetan JSON.

Dalam aplikasi praktikal, kami perlu memastikan bahawa data yang dikodkan ke dalam format JSON ialah pengekodan UTF-8 standard. Jika tidak, ralat pengekodan mungkin berlaku.

Untuk meringkaskan, dalam PHP, kita boleh menggunakan fungsi json_encode untuk menukar objek atau tatasusunan kepada tatasusunan rentetan JSON. Untuk mengendalikan objek kompleks bersarang, kita perlu menukar secara rekursif semua sifat kepada tatasusunan. Dalam aplikasi praktikal, kita perlu memastikan bahawa data yang dikodkan dalam format JSON ialah pengekodan UTF-8 standard. Dengan menggunakan teknologi ini, kami boleh menukar data ke dalam format JSON dengan mudah untuk penghantaran dan analisis melalui rangkaian.

Atas ialah kandungan terperinci Bagaimana untuk menukar objek kepada tatasusunan rentetan json dalam php. 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
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan