Rumah  >  Artikel  >  pembangunan bahagian belakang  >  Tukar rentetan json kepada array php

Tukar rentetan json kepada array php

PHPz
PHPzasal
2023-04-23 09:17:15129semak imbas

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>

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

Output:

<code><?php
$json_string = '{"name": "Tom", "age": 30, "sex": "male"}';
$decoded_json = json_decode($json_string, true);
print_r($decoded_json);
?></code>
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>

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>
$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>
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>

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!

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