Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Bagaimana untuk menukar tatasusunan php ke objek json

Bagaimana untuk menukar tatasusunan php ke objek json

PHPz
PHPzasal
2023-04-17 16:36:45978semak imbas

Dalam PHP, tatasusunan ialah salah satu daripada struktur data biasa. Kini, disebabkan oleh peningkatan populariti pertukaran data dan pemisahan bahagian hadapan dan belakang, boleh dikatakan bahawa format data JSON digunakan secara meluas. Jadi bagaimana untuk menukar tatasusunan dalam PHP menjadi objek JSON? Artikel ini akan memberikan jawapannya.

1. Gunakan fungsi terbina dalam PHP json_encode()

PHP menyediakan fungsi json_encode() terbina dalam untuk menukar tatasusunan PHP kepada objek JSON. Fungsi json_encode() menerima pembolehubah PHP sebagai parameter dan mengekod pembolehubah itu ke dalam rentetan berformat JSON. Di bawah ialah contoh menggunakan fungsi json_encode() untuk menukar tatasusunan PHP kepada objek JSON.

$my_array = [1, 2, 'hello', 'world'];
 
$json_string = json_encode($my_array);
 
echo $json_string;

Hasil keluaran kod di atas adalah seperti berikut:

[1,2,"hello","world"]

Perlu diambil perhatian bahawa parameter pilihan kedua $option bagi fungsi json_encode() lalai kepada 0, menunjukkan hasil keluaran Tiada lekukan dalam . Anda boleh menjadikan hasil lebih mudah dibaca dengan menetapkan parameter ini kepada JSON_PRETTY_PRINT.

2. Gunakan fungsi terbina dalam PHP json_decode()

bersesuaian dengan fungsi json_encode() PHP juga menyediakan fungsi json_decode() untuk menukar rentetan format JSON di bawah ialah contoh menggunakan fungsi json_decode() untuk menukar objek JSON kepada tatasusunan PHP.

$json_string = '[1,2,"hello","world"]';
 
$my_array = json_decode($json_string);
 
var_dump($my_array);

Hasil output ialah:

array(4) { [0]=> int(1) [1]=> int(2) [2]=> string(5) "hello" [3]=> string(5) "world" }

Perlu diambil perhatian bahawa fungsi json_decode() menukar rentetan JSON kepada objek stdClass secara lalai. Jika anda ingin menukarnya kepada tatasusunan PHP, anda boleh menetapkan parameter kedua fungsi json_decode() kepada benar, seperti berikut:

$json_string = '{"name": "Tom", "age": 18}';
 
$my_array = json_decode($json_string, true);
 
var_dump($my_array);

Hasil output ialah:

array(2) { ["name"]=> string(3) "Tom" ["age"]=> int(18) }

3. Gunakan perpustakaan kelas PHP

Jika anda ingin melakukan operasi penyuntingan yang lebih maju pada data JSON, anda boleh menggunakan perpustakaan kelas JSON dalam PHP, seperti pecl-json atau jsonlint. Perpustakaan ini menyediakan lebih banyak pilihan dan fungsi daripada fungsi json_encode() dan json_decode().

Sebagai contoh, menggunakan perpustakaan kelas pecl-json, anda boleh menukar tatasusunan PHP kepada objek JSON dengan mudah:

use \JsonSerializable;
 
class MyArray implements JsonSerializable
{
    private $arr;
 
    public function __construct($arr = [])
    {
        $this->arr = $arr;
    }
 
    public function jsonSerialize()
    {
        return $this->arr;
    }
}
 
$my_array = new MyArray([1, 2, 'hello', 'world']);
 
$json_string = json_encode($my_array);
 
echo $json_string;

Hasil output ialah:

[1,2,"hello","world"]

Diperlukan Ambil perhatian bahawa apabila menukar objek PHP kepada objek JSON, objek PHP mesti melaksanakan antara muka JsonSerializable. Selepas melaksanakan antara muka JsonSerializable, fungsi json_encode() akan memanggil kaedah antara muka jsonSerialize() untuk menukar objek PHP kepada objek JSON.

Kesimpulan

Artikel ini menerangkan cara menukar tatasusunan kepada objek JSON dalam PHP. Dengan menggunakan fungsi terbina dalam PHP json_encode() dan json_decode(), kita boleh menukar format data asas dengan mudah. Jika anda perlu melakukan operasi pengeditan data JSON yang lebih maju, anda boleh menggunakan perpustakaan kelas JSON dalam PHP. Mari lihat contoh kami sekali lagi. Tanpa menggunakan perpustakaan lain, anda boleh menukar tatasusunan kepada json seperti ini:

$my_array = [1, 2, 'hello', 'world'];

$json_string = json_encode($my_array);

$result_array = json_decode($json_string, true);

Sangat mudah dan mudah!

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