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

Bagaimana untuk menukar tatasusunan dalam php json

PHPz
PHPzasal
2023-04-27 09:06:36652semak imbas

Dalam PHP, JSON ialah format data biasa yang boleh digunakan untuk mewakili data berstruktur. Data dalam format JSON boleh dipindahkan dan dihuraikan dengan mudah antara sistem yang berbeza. Dalam PHP, kita boleh menggunakan kod berikut untuk menukar rentetan JSON kepada tatasusunan:

$json_str = '{"name":"John","age":30,"city":"New York"}';
$arr = json_decode($json_str, true);

Antaranya, fungsi json_decode digunakan untuk menyahkod rentetan berformat JSON kepada tatasusunan PHP. Parameter pertama ialah rentetan JSON yang akan dinyahkodkan, dan parameter kedua ialah nilai Boolean yang menunjukkan sama ada hendak menyahkod hasil menjadi tatasusunan bersekutu. Jika ditetapkan kepada true, hasilnya akan menjadi tatasusunan bersekutu; jika false atau hujah ini ditinggalkan, hasilnya akan menjadi tatasusunan diindeks biasa.

Selain menukar rentetan JSON kepada tatasusunan, kami juga boleh menukar tatasusunan PHP kepada rentetan dalam format JSON:

$arr = array('name' => 'John', 'age' => 30, 'city' => 'New York');
$json_str = json_encode($arr);

Di sini, fungsi json_encode digunakan untuk mengekodkan Tatasusunan PHP ke dalam A rentetan dalam format JSON, mengembalikan rentetan. Perlu diingat bahawa jika tatasusunan PHP mengandungi rentetan berkod bukan UTF-8, anda perlu menukarnya kepada pengekodan UTF-8 dahulu dan kemudian mengekodnya. Anda boleh menggunakan fungsi mb_convert_encoding untuk penukaran seperti berikut:

$arr = array('name' => '张三', 'age' => 30, 'city' => '北京');
$arr_utf8 = array_map(function($item){
    return mb_convert_encoding($item, 'UTF-8', 'GBK');
}, $arr);
$json_str = json_encode($arr_utf8, JSON_UNESCAPED_UNICODE);

Di sini fungsi array_map digunakan untuk melelaran melalui setiap elemen dalam tatasusunan dan menukarnya kepada pengekodan UTF-8. Parameter kedua JSON_UNESCAPED_UNICODE bermaksud bahawa orang Cina tidak akan terlepas dan akan dikeluarkan sebagaimana adanya.

Selain menukar tatasusunan PHP kepada rentetan JSON, anda juga boleh menukar objek kepada rentetan JSON. Dalam kes ini, objek perlu bersiri, yang biasanya dicapai melalui kaedah jsonSerialize:

class Person {
    public $name;
    public $age;
    public $city;
    
    public function __construct($name, $age, $city) {
        $this->name = $name;
        $this->age = $age;
        $this->city = $city;
    }
    
    public function jsonSerialize() {
        return [
            'name' => $this->name,
            'age' => $this->age,
            'city' => $this->city
        ];
    }
}

$person = new Person('John', 30, 'New York');
$json_str = json_encode($person);

Di sini, kelas Person melaksanakan kaedah jsonSerialize, yang menukar objek kepada tatasusunan Bersekutu , dan kemudian gunakan fungsi json_encode untuk mengekodnya ke dalam rentetan format JSON.

Ringkasnya, format JSON digunakan secara meluas dalam aplikasi web PHP mempunyai sokongan terbina dalam untuk format JSON, yang boleh menukar rentetan JSON kepada tatasusunan PHP dan menukar tatasusunan atau objek PHP kepada format JSON.

Atas ialah kandungan terperinci Bagaimana untuk menukar tatasusunan dalam php 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