json_encode gibt null für eine gültige JSON-Zeichenfolge zurück
P粉176980522
2023-07-28 19:35:06
<p>Ich verwende die json_decode-Funktion von PHP, um einen JSON-String zu analysieren, der mit JSON.stringify; von JavaScript erstellt wurde. </p><p>JSON scheint gültig zu sein: </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>Endgültige JSON-Fehlermeldung: „Syntaxfehler“</p><p>Okay, wenn ich die Zeichenfolge direkt in json_decode einfüge, funktioniert es. Ich sende einen String per Ajax über ein form_data-Objekt und versuche dann, die Post-Variable zu dekodieren. </p><p>Das Folgende ist der Code für die Ajax-Anfrage:</p><p><br /></p>
<pre class="brush:php;toolbar:false;">$.ajax({
Typ: „POST“,
URL: ajaxurl,
Daten: Formulardaten,
Cache: falsch,
Inhaltstyp: falsch,
Prozessdaten: falsch,
beforeSend: function () {
toggle_loading_spinner();
},
Erfolg: Funktion (Daten) {
console.log(data);
toggle_loading_spinner();
},
});</pre>
<p>Ich habe versucht, preg_replace('/[x00-x1Fx80-xFF]/', '', $JSON_STRING) zu verwenden, um die unerwünschten Symbole zu entfernen, aber ich habe die gleiche Fehlermeldung erhalten. </p>
json_decode()函数仅适用于以UTF-8编码的字符串。输入可能是不同的编码。在删除不需要的字符后,尝试将编码转换为UTF-8。以下是如何进行转换的参考资料:
https://www.php.net/manual/en/function.mb-convert-encoding.php