json_encode renvoie null sur une chaîne JSON valide
P粉176980522
2023-07-28 19:35:06
<p>J'utilise la fonction json_decode de PHP pour analyser une chaîne JSON créée par JSON.stringify de JavaScript; </p><p>JSON semble être valide : </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":"exemple@gmail.com","m_user_g_plus":"exemple@gmail.com"}"</pre>
<p>Message d'erreur final JSON : "Erreur de syntaxe"</p><p>D'accord, si je colle la chaîne directement dans json_decode, cela fonctionne. J'envoie une chaîne via ajax via un objet form_data, puis j'essaie de décoder la variable post. </p><p>Voici le code de la requête ajax :</p><p><br /></p>
<pre class="brush:php;toolbar:false;">$.ajax({
tapez : "POST",
URL : ajaxurl,
données : données de formulaire,
cache : faux,
contentType : faux,
ProcessData : faux,
avantEnvoyer : fonction () {
toggle_loading_spinner();
},
succès : fonction (données) {
console.log(données);
toggle_loading_spinner();
},
});</pré>
<p>J'ai essayé d'utiliser preg_replace('/[x00-x1Fx80-xFF]/', '', $JSON_STRING) pour supprimer les symboles indésirables, mais j'ai eu la même erreur. </p>
La fonction
json_decode() ne fonctionne qu'avec des chaînes codées en UTF-8. L'entrée peut être dans un codage différent. Après avoir supprimé les caractères indésirables, essayez de convertir le codage en UTF-8. Voici des références sur la façon de réaliser la conversion :
https://www.php.net/manual/en/function.mb-convert-encoding.php