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-20 10:11:41993semak imbas

Dalam pengaturcaraan php, kita selalunya perlu menukar objek kepada tatasusunan rentetan json. Operasi ini sangat biasa dalam pembangunan web dan boleh digunakan untuk menghantar data kepada klien atau pelayan, dan juga untuk berkongsi data antara aplikasi yang berbeza. Dalam artikel ini kami akan menerangkan cara menukar objek kepada tatasusunan rentetan json menggunakan php.

1. Apakah itu json?

JSON adalah singkatan kepada Notasi Objek JavaScript, iaitu format pertukaran data yang ringan. JSON adalah berdasarkan sintaks JavaScript, tetapi tidak bergantung pada JavaScript, jadi ia boleh digunakan dengan mudah dalam pelbagai bahasa pengaturcaraan. JSON menggunakan pasangan kunci/nilai untuk mewakili data, dan struktur datanya serupa dengan kamus dalam Python. JSON mewakili data sebagai objek (Objek) atau tatasusunan (Array). Objek JSON ialah koleksi pasangan kunci/nilai, dengan kuncinya ialah rentetan dan nilainya boleh berupa rentetan, nombor, nilai Boolean, tatasusunan, objek, dsb. Tatasusunan JSON ialah koleksi tersusun di mana setiap elemen boleh menjadi nilai apa-apa jenis (termasuk objek dan tatasusunan).

Kedua, fungsi json_encode dalam php

Fungsi json_encode dalam php digunakan untuk menukar pembolehubah php kepada rentetan format JSON. Sintaksnya adalah seperti berikut:

json_encode($value, $options = 0, $depth = 512)

$value: pembolehubah untuk ditukar kepada format json, yang boleh menjadi sebarang jenis data , termasuk Tatasusunan, objek, jenis Boolean, integer, nombor titik terapung, nol, dsb.

$options: Parameter pilihan, digunakan untuk menentukan gelagat penukaran. Pilihan biasa termasuk JSON_PRETTY_PRINT (output berformat), JSON_UNESCAPED_SLASHES (tidak melepaskan garis miring ke belakang), dsb. Untuk senarai lengkap, sila rujuk dokumentasi PHP rasmi.

$depth: Parameter pilihan, digunakan untuk mengawal kedalaman penukaran. Data melebihi kedalaman ini akan ditukar kepada null. Kedalaman lalai ialah 512.

Fungsi json_encode menukar pembolehubah menjadi rentetan format json yang boleh dihantar melalui rangkaian atau disimpan dalam fail.

Tiga, tukar objek kepada tatasusunan rentetan json

Dalam php, menukar objek kepada tatasusunan rentetan json adalah sangat mudah. Kita hanya perlu menukar objek kepada tatasusunan bersekutu dan kemudian gunakan fungsi json_encode untuk menukar tatasusunan kepada rentetan json.

Berikut ialah contoh mudah yang menunjukkan cara menukar objek dalam php kepada tatasusunan rentetan json:

// Define a Person class
class Person
{

public $name;
public $age;
public $city;

public function __construct($name, $age, $city) 
{
    $this->name = $name;
    $this->age = $age;
    $this->city = $city;
}</p>
<p>}</p>
<p>// Kelas Orang Segera<br>$orang = Orang baharu('Tom', 28, 'Shanghai');</p> <p>// Tukar objek kepada tatasusunan bersekutu<br>$arr = [</p>
<pre class="brush:php;toolbar:false">'name' => $person->name,
'age' => $person->age,
'city' => $person->city,

];

// Tukar tatasusunan kepada rentetan json
$json = json_encode($arr) ;

//Cetak rentetan json
echo $json;
?>

Hasil keluaran kod di atas ialah:

{ "nama" :"Tom","age":28,"city":"Shanghai"}

Dalam contoh di atas, kita mula-mula mentakrifkan kelas Orang dan membuat instantiat objek. Kami kemudian menukar objek kepada tatasusunan bersekutu dan menggunakan fungsi json_encode untuk menukar tatasusunan kepada rentetan json. Akhirnya, kami mencetak rentetan json pada skrin.

Empat, tukar objek bersarang kepada tatasusunan rentetan json

Jika anda ingin menukar objek bersarang kepada tatasusunan rentetan json, anda perlu melintasi keseluruhan pokok objek secara rekursif dan menukar setiap sub-objek kepada Convert kepada tatasusunan bersekutu. Berikut ialah contoh yang menunjukkan cara menukar objek bersarang kepada tatasusunan rentetan json:

// Define a Person class
class Person
{

public $name;
public $age;
public $city;

public function __construct($name, $age, $city) 
{
    $this->name = $name;
    $this->age = $age;
    $this->city = $city;
}</p>
<p>}</p>
<p>// Tentukan kelas Pesanan <br>Pesanan kelas<br>{</p>
<pre class="brush:php;toolbar:false">public $id;
public $customer;

public function __construct($id, $customer) 
{
    $this->id = $id;
    $this->customer = $customer;
}

}

// Orang Segera dan Kelas Pesanan
$orang = Orang baharu('Tom', 28, 'Shanghai');
$order = Pesanan baharu(1001, $orang);

//Tukar objek bersarang kepada rentetan json tatasusunan
$arr = [

'id' => $order->id,
'customer' => [
    'name' => $order->customer->name,
    'age' => $order->customer->age,
    'city' => $order->customer->city,
],

];

// Tukar tatasusunan kepada rentetan json
$json = json_encode($arr);

//Cetak rentetan json
echo $json;
?>

Hasil output kod di atas ialah:

{"id":1001," customer": {"name":"Tom","age":28,"city":"Shanghai"}}

Dalam contoh di atas, kami mentakrifkan dua kelas, Person and Order, dan objek Order is instantiated . Kami kemudian menukar objek bersarang menjadi tatasusunan bersekutu dan menggunakan fungsi json_encode untuk menukar tatasusunan menjadi rentetan json. Akhirnya, kami mencetak rentetan json pada skrin.

Kelima, ringkasan

Menukar objek dalam tatasusunan rentetan php kepada json ialah kemahiran yang sangat praktikal, ia boleh menghantar data dengan berkesan kepada klien atau pelayan, dan dalam data Kongsi yang berbeza antara aplikasi. Dalam php, kita boleh menggunakan fungsi json_encode untuk menukar objek kepada tatasusunan rentetan json. Jika anda ingin menukar objek bersarang kepada tatasusunan rentetan json, anda perlu melintasi keseluruhan pokok objek secara rekursif dan menukar setiap sub-objek kepada tatasusunan bersekutu. Semoga artikel ini bermanfaat kepada semua.

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