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

Bagaimana untuk menukar objek kepada tatasusunan rentetan json dalam php

PHPz
PHPzasal
2023-04-19 11:38:46543semak imbas

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'
);

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

$json_data = json_encode($data);
echo $json_data;

The hasil keluaran ialah:

{"name":"Bob","age":"25","gender":"Male"}

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');

Kita boleh menukar kelas ini kepada tatasusunan yang mengandungi atribut:

$person_arr = array(
    'name' => $person->name,
    'age' => $person->age,
    'gender' => $person->gender
);

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

$json_person = json_encode($person_arr);
echo $json_person;

Hasil output ialah:

{"name":"Bob","age":"25","gender":"Male"}

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');

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);

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
);

Kemudian, teruskan menukar objek Orang menjadi tatasusunan:

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

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

$json_person = json_encode($person_arr);
echo $json_person;

Hasil output ialah:

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

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!

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