Rumah > pembangunan bahagian belakang > masalah PHP > Tukar rentetan json kepada array php

Tukar rentetan json kepada array php

PHPz
Lepaskan: 2023-04-23 09:17:15
asal
228 orang telah melayarinya

Dalam PHP, menukar rentetan berformat JSON kepada tatasusunan ialah proses yang sangat mudah. Terdapat dua fungsi terbina dalam PHP yang boleh digunakan untuk tujuan ini: json_decode() dan json_decode_object().

1. Gunakan fungsi json_decode()

Fungsi json_decode() ialah cara biasa untuk menukar rentetan format JSON kepada tatasusunan PHP.

Sintaks:

<code>mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )</code>
Salin selepas log masuk

Di mana:

  • $json: rentetan json yang perlu dihuraikan; akan dikembalikan Objek ditukar kepada tatasusunan bersekutu Jika nilainya BENAR, ia ditukarkan kepada tatasusunan bersekutu lalai ialah 512. Untuk mengelakkan limpahan memori, nilai ini boleh dilaraskan mengikut situasi sebenar ;
  • $options: Parameter pilihan, anda boleh menentukan pilihan untuk menghurai JSON.
  • Contoh:
  • Tukar rentetan format JSON ke dalam tatasusunan:

Output:

<code><?php
$json_string = '{"name": "Tom", "age": 30, "sex": "male"}';
$decoded_json = json_decode($json_string);
print_r($decoded_json);
?></code>
Salin selepas log masuk
Kod di atas, kita mula-mula tentukan rentetan dalam format JSON, kemudian panggil fungsi json_decode() untuk menukar rentetan ke dalam tatasusunan PHP $decoded_json, dan cetak hasilnya.

Jika anda ingin menukar hasil pulangan kepada tatasusunan bersekutu, anda perlu menetapkan parameter $assoc kepada BENAR:
<code>stdClass Object
(
   [name] => Tom
   [age] => 30
   [sex] => male
)</code>
Salin selepas log masuk
Salin selepas log masuk

Output:

<code><?php
$json_string = '{"name": "Tom", "age": 30, "sex": "male"}';
$decoded_json = json_decode($json_string, true);
print_r($decoded_json);
?></code>
Salin selepas log masuk
Daripada output di atas anda boleh Seperti yang anda lihat, tatasusunan $decoded_json adalah berbeza daripada objek keluaran terakhir Ini kerana $assoc ditetapkan kepada TRUE pada masa ini dan ditukar kepada tatasusunan bersekutu. Jika $assoc tidak ditetapkan, ia lalai untuk mengembalikan objek dan bukannya tatasusunan.

2. Gunakan fungsi json_decode_object()
<code>Array
(
   [name] => Tom
   [age] => 30
   [sex] => male
)</code>
Salin selepas log masuk

Selain fungsi json_decode(), PHP juga menyediakan cara lain untuk menukar rentetan format JSON kepada tatasusunan PHP, iaitu fungsi json_decode_object ().

Sintaks:

Antaranya:

<code>object json_decode_object ( string $json_string [, bool $assoc = false [, int $depth = 512 [, int $options = 0 ]]] )</code>
Salin selepas log masuk
$json_string: json string yang perlu dihuraikan

$assoc: sama ada ia akan dikembalikan Objek ditukar kepada tatasusunan bersekutu Jika nilainya BENAR, ia ditukar kepada tatasusunan bersekutu Ia tidak ditukar secara lalai
  • $depth: Menetapkan kedalaman rekursi. Lalai ialah 512. Untuk mengelakkan limpahan memori, nilai ini boleh dilaraskan mengikut situasi sebenar ;
  • $options: Parameter pilihan, anda boleh menentukan pilihan untuk menghuraikan JSON.
  • Contoh:
  • Tukar rentetan format JSON ke dalam tatasusunan:

Output:

<code><?php
$json_string = '{"name": "Tom", "age": 30, "sex": "male"}';
$decoded_json = json_decode_object($json_string);
print_r($decoded_json);
?></code>
Salin selepas log masuk
Kod di atas, kami gunakan fungsi json_decode_object() untuk menukar rentetan JSON ke dalam tatasusunan PHP $decoded_json. Oleh kerana kami tidak menetapkan parameter $assoc, ia mengembalikan objek dan bukannya tatasusunan secara lalai.

Ringkasan
<code>stdClass Object
(
   [name] => Tom
   [age] => 30
   [sex] => male
)</code>
Salin selepas log masuk
Salin selepas log masuk

Dalam PHP, kita boleh menggunakan fungsi json_decode() dan fungsi json_decode_object() untuk menukar rentetan format JSON kepada tatasusunan PHP. Kedua-dua fungsi mempunyai kelebihan mereka sendiri, dan yang mana satu untuk dipilih bergantung pada keperluan khusus anda. Jika anda mahu hasilnya menjadi objek kemudian gunakan json_decode_object(), jika anda mahu hasilnya menjadi array kemudian gunakan json_decode(). Semasa penggunaan, anda juga perlu melaraskan nilai parameter $depth dan $options mengikut situasi sebenar untuk mengelakkan limpahan memori.

Atas ialah kandungan terperinci Tukar rentetan json kepada array 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