Pengekodan JSON Gagal dengan Petikan Tunggal: Misteri PHP
Apabila menggunakan fungsi json_encode PHP untuk menukar objek stdClass kepada JSON, anda mungkin menghadapi kegagalan yang membingungkan mengakibatkan nilai harta benda hilang. Mari kita teroka isu ini dan temui penyelesaian.
Contoh yang diberikan menunjukkan tingkah laku:
<code class="php">$post = new stdClass(); $post->post_title = "Alumnus' Dinner Coming Soon"; // note the single quote $json = json_encode($post); echo $json; // outputs {"ID":"12981","post_title":null,"post_parent":"0","post_date":"2012-01-31 12:00:51"}</code>
JSON yang terhasil tidak mempunyai sifat "post_title" disebabkan isu pemformatan dengan petikan tunggal. Spesifikasi JSON menentukan bahawa petikan tunggal tidak dibenarkan dalam kunci atau nilai harta, yang dipatuhi dengan ketat oleh json_encode.
Untuk menyelesaikannya, ikut langkah berikut:
1. Pastikan Pengekodan UTF-8:
Sambungan pangkalan data mesti menentukan pengekodan UTF-8 untuk mendapatkan semula data dengan betul. Bergantung pada kaedah sambungan anda:
2. Nyahkod Petikan Tunggal:
Jika anda menghadapi isu pengekodan aksara, pertimbangkan menyahkod petikan tunggal secara eksplisit. Katakan pangkalan data anda mengembalikan "Alumnus? Makan Malam Akan Datang" untuk "post_title":
<code class="php">$post->post_title = str_replace("\x92", "'", $post->post_title);</code>
Ini menukar aksara yang salah kepada petikan tunggal yang sah, memastikan pengekodan JSON yang betul.
Atas ialah kandungan terperinci Mengapakah `json_encode` PHP Gagal dengan Petikan Tunggal dalam Nilai Harta?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!