Bagaimana untuk menukar rentetan JSON kepada tatasusunan dalam PHP

PHPz
Lepaskan: 2023-04-23 10:01:47
asal
625 orang telah melayarinya

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 ]]] )
Salin selepas log masuk

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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)
Salin selepas log masuk
  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);
Salin selepas log masuk

Hasil keluaran:

Array
(
    [name] => 汤姆
    [age] => 20
    [gender] => 男
)
Salin selepas log masuk
  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&
)
Salin selepas log masuk

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!

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