json_encode mengembalikan null pada rentetan JSON yang sah
P粉176980522
2023-07-28 19:35:06
<p>Saya menggunakan fungsi json_decode PHP untuk menghuraikan rentetan JSON yang dibuat oleh JSON.stringify; </p><p>JSON nampaknya sah: </p><p>JSON String: </p><p><br /></p>
<pre class="brush:php;toolbar:false;">"{"m_user_name":"test","m_user_phone":"+60 12-384 7961","m_user_city":"Kuala Lumpur"," m_user_linkedin":"example@gmail.com","m_user_g_plus":"example@gmail.com"}"</pre>
<p>Mesej ralat akhir JSON: "Ralat sintaks"</p><p>Baiklah, jika saya menampal rentetan terus ke dalam json_decode ia berfungsi. Saya menghantar rentetan melalui ajax melalui objek form_data dan kemudian cuba menyahkod pembolehubah pos. </p><p>Berikut ialah kod untuk permintaan ajax:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">$.ajax({
taip: "POST",
url: ajaxurl,
data: formdata,
cache: palsu,
Jenis kandungan: palsu,
processData: palsu,
beforeSend: function () {
toggle_loading_spinner();
},
kejayaan: fungsi (data) {
console.log(data);
toggle_loading_spinner();
},
});</pre>
<p>Saya cuba menggunakan preg_replace('/[x00-x1Fx80-xFF]/', '', $JSON_STRING) untuk mengalih keluar simbol yang tidak diingini, tetapi saya mendapat ralat yang sama. </p>
Fungsi
json_decode() hanya berfungsi dengan rentetan yang dikodkan dalam UTF-8. Input mungkin dalam pengekodan yang berbeza. Selepas mengalih keluar aksara yang tidak diingini, cuba tukar pengekodan kepada UTF-8. Berikut adalah rujukan tentang cara membuat penukaran:
https://www.php.net/manual/en/function.mb-convert-encoding.php