Rumah >pembangunan bahagian belakang >masalah PHP >Bagaimana untuk menukar rentetan JSON kepada tatasusunan dalam PHP

Bagaimana untuk menukar rentetan JSON kepada tatasusunan dalam PHP

PHPz
PHPzasal
2023-04-23 09:16:15660semak imbas

Dalam PHP, kita selalunya perlu menukar rentetan JSON kepada tatasusunan. Ini membantu kami mengendalikan dan memproses data. Lagipun, JSON ialah format pertukaran data yang ringan dan banyak antara muka rangkaian mengembalikan data dalam format JSON.

Jadi, bagaimana untuk menukar rentetan JSON kepada tatasusunan dalam PHP? Mari perkenalkan di bawah.

  1. Gunakan fungsi json_decode()

Dalam PHP, kita boleh menggunakan fungsi json_decode() untuk menukar rentetan JSON kepada tatasusunan PHP. Sintaks fungsi json_decode() adalah seperti berikut:

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

Antaranya, parameter $json ialah rentetan JSON yang hendak ditukar. Parameter $assoc adalah pilihan dan nilai lalai adalah FALSE Jika ditetapkan kepada TRUE, tatasusunan yang ditukar akan menjadi tatasusunan bersekutu. Parameter $depth adalah pilihan dan menunjukkan kedalaman rekursif mengurai rentetan JSON yang lebih besar daripada kedalaman ini akan ditukar kepada NULL. Parameter $options adalah pilihan dan mewakili pilihan penghuraian JSON, yang boleh ditetapkan kepada JSON_BIGINT_AS_STRING, JSON_OBJECT_AS_ARRAY atau JSON_THROW_ON_ERROR.

Berikut ialah contoh menukar rentetan JSON kepada tatasusunan:

$json_str = '{"name": "Tom", "age": 20, "gender": "male"}';
$arr = json_decode($json_str, true);

print_r($arr);

Hasil keluaran:

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)
  1. Menyelesaikan masalah Cina bercelaru aksara

Jika rentetan JSON mengandungi aksara Cina, aksara bercelaru mungkin muncul dalam tatasusunan yang ditukar. Pada masa ini, kita perlu menggunakan pilihan JSON_UNESCAPED_UNICODE untuk mengecualikan semua aksara bukan ASCII daripada pengekodan heksadesimal.

Berikut ialah contoh menggunakan pilihan JSON_UNESCAPED_UNICODE:

$json_str = '{"name": "汤姆", "age": 20, "gender": "男"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE);

print_r($arr);

Hasil keluaran:

Array
(
    [name] => 汤姆
    [age] => 20
    [gender] => 男
)
  1. Menyelesaikan masalah aksara khas dalam rentetan JSON

Kadangkala, rentetan JSON mengandungi aksara khas, seperti kandungan yang terdiri daripada < Watak istimewa ini perlu dilepaskan dalam spesifikasi sintaks JSON, tetapi beberapa rentetan JSON yang dikembalikan oleh antara muka tidak terlepas.

Pada masa ini, kita perlu menggunakan pilihan JSON_UNESCAPED_SLASHES untuk memastikan bahawa aksara khas ini tidak akan terlepas.

Berikut ialah contoh menggunakan pilihan JSON_UNESCAPED_SLASHES:

$json_str = &#39;{"name": "<Tom>", "age": 20, "gender": "&male&"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

print_r($arr);</p>
<p>Hasil keluaran: </p>
<pre class="brush:php;toolbar:false">Array
(
    [name] => <Tom>
    [age] => 20
    [gender] => &male&
)

Di atas ialah cara menukar rentetan JSON kepada tatasusunan dalam PHP, harap ia membantu anda.

Atas ialah kandungan terperinci Bagaimana untuk menukar rentetan JSON kepada tatasusunan 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