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
PHPzasal
2023-04-18 15:22:271750semak imbas

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;

Output kod ini ialah:

{"name":"John","age":30,"gender":"male"}

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'
);

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

$json_str = json_encode($data);
echo $json_str;

Hasil output ialah:

{"name":"John "The Rock" Johnson","age":30,"gender":"male"}

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;

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

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!

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