Rumah > pembangunan bahagian belakang > masalah PHP > Bagaimana untuk menyelesaikan masalah petikan berganda apabila menukar tatasusunan php ke json

Bagaimana untuk menyelesaikan masalah petikan berganda apabila menukar tatasusunan php ke json

PHPz
Lepaskan: 2023-04-18 15:46:37
asal
1711 orang telah melayarinya

Dalam proses menukar tatasusunan PHP kepada data JSON, kadangkala rentetan JSON mengandungi petikan berganda. Keadaan ini sangat biasa dalam pembangunan sebenar, dan penyelesaiannya sangat mudah.

Secara amnya, menukar tatasusunan PHP kepada rentetan JSON boleh dilakukan menggunakan fungsi terbina dalam PHP json_encode(). Fungsi ini menukar tatasusunan PHP kepada rentetan JSON. Sebagai contoh, kod berikut menukar tatasusunan PHP yang mengandungi beberapa data kepada rentetan JSON:

$data = array(
    'name' => 'John',
    'age' => 30,
    'gender' => 'male'
);

$json_str = json_encode($data);
echo $json_str;
Salin selepas log masuk

Output kod ini ialah:

{"name":"John","age":30,"gender":"male"}
Salin selepas log masuk

Dalam kod di atas, tukarkan Tatasusunan PHP yang mengandungi tiga nilai medan ​​​​name, age dan gender ke dalam rentetan JSON.

Walau bagaimanapun, kadangkala nilai dalam tatasusunan PHP kami sendiri mengandungi petikan berganda, yang menyebabkan masalah apabila menggunakan fungsi json_encode() untuk menukarnya kepada rentetan JSON.

Sebagai contoh, tatasusunan PHP berikut mengandungi nilai dengan petikan berganda:

$data = array(
    'name' => 'John "The Rock" Johnson',
    'age' => 30,
    'gender' => 'male'
);
Salin selepas log masuk

Jika anda menggunakan fungsi json_encode() terus untuk menukar kepada rentetan JSON:

$json_str = json_encode($data);
echo $json_str;
Salin selepas log masuk

Hasil output ialah:

{"name":"John "The Rock" Johnson","age":30,"gender":"male"}
Salin selepas log masuk

Kami akan mendapati bahawa nilai medan name dalam rentetan JSON tidak ditukar dengan betul kepada rentetan dalam petikan berganda, tetapi dalam yang pertama Petikan berganda dipotong.

Untuk menyelesaikan masalah ini, kita perlu menambah parameter json_encode() apabila menggunakan fungsi JSON_UNESCAPED_SLASHES untuk menukarnya menjadi rentetan JSON, contohnya:

$json_str = json_encode($data, JSON_UNESCAPED_SLASHES);
echo $json_str;
Salin selepas log masuk

Dalam dengan cara ini, hasil output akan betul-betul menukar nilai medan name kepada rentetan dalam petikan berganda:

{"name":"John \"The Rock\" Johnson","age":30,"gender":"male"}
Salin selepas log masuk

Perhatikan bahawa nilai medan name dalam hasil output telah disertakan dengan betul dalam petikan berganda dan petikan berganda Dalaman juga dilepaskan ke dalam ". Dengan cara ini, rentetan JSON yang ditukar boleh dihuraikan dengan betul.

Selain parameter JSON_UNESCAPED_SLASHES, terdapat beberapa parameter lain yang boleh digunakan untuk mengawal hasil penukaran fungsi json_encode(). Jika anda perlu mengetahui lebih lanjut, anda boleh merujuk kepada penerangan fungsi json_encode() dalam dokumentasi rasmi PHP.

Atas ialah kandungan terperinci Bagaimana untuk menyelesaikan masalah petikan berganda apabila menukar tatasusunan php ke json. 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