Heim >Backend-Entwicklung >PHP-Tutorial >Warum gibt meine JSON-Decodierung trotz einer scheinbar gültigen JSON-Antwort von meinem Webdienst NULL zurück?
JSON-Dekodierung schlägt mit Nullantwort vom Webservice fehl
Ein besonderes Problem tritt auf, wenn json_encode und json_decode zur Verarbeitung von JSON-Daten in einer Webdienstanwendung verwendet werden . Der Webdienst gibt JSON im folgenden Format zurück:
var_dump($foo): string(62) "{"action":"set","user":"123123123123","status":"OK"}"
Beim Versuch, den JSON in der Clientanwendung mit dem folgenden Code zu dekodieren:
$data = json_decode($foo, true)
das Ergebnis ist überraschend null:
var_dump($data): NULL
Eine mögliche Ursache für dieses Problem liegt in der PHP Magic Quotes-Konfiguration auf dem Server. In PHP-Versionen vor 5.4 wurden bestimmte Zeichen in Formularübermittlungen, einschließlich JSON-Eingaben, automatisch durch magische Anführungszeichen maskiert. Um dieses Problem zu beheben, deaktivieren Sie magische Anführungszeichen mit dem folgenden Code:
if(get_magic_quotes_gpc()){ $param = stripslashes($_POST['param']); }else{ $param = $_POST['param']; } $param = json_decode($param,true);
Dies sollte das Problem beheben und es json_decode ermöglichen, das erwartete JSON-Objekt wie erwartet zurückzugeben.
Das obige ist der detaillierte Inhalt vonWarum gibt meine JSON-Decodierung trotz einer scheinbar gültigen JSON-Antwort von meinem Webdienst NULL zurück?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!