Heim > Backend-Entwicklung > PHP7 > Es ist ein Problem mit php7 json_decode null aufgetreten!

Es ist ein Problem mit php7 json_decode null aufgetreten!

藏色散人
Freigeben: 2023-02-18 09:16:02
nach vorne
2465 Leute haben es durchsucht

Es ist ein Problem mit php7 json_decode null aufgetreten!

Spezifische Problembeschreibung:

1. Bestätigen Sie, dass die Datei keinen BOM-Header hat

2. Habe die folgenden Methoden ausprobiert, um ungültige Zeichenfolgen zu entfernen, aber es wird immer noch NULL ausgegeben

        $some_string = htmlspecialchars_decode($some_string);
        $some_string = preg_replace("/\t/", " ", $some_string);
        $some_string = preg_replace("/\n/", ' ', $some_string);
        $some_string = str_replace("\n", ' ', $some_string);
        $some_string = str_replace ('\n','', $some_string);
Nach dem Login kopieren

3 Fehler, fehlerhaftes JSON

4. Geben Sie die Zeichenfolge direkt aus, und der Browser kann josn normal analysieren, wie im Screenshot unten gezeigt

Es ist ein Problem mit php7 json_decode null aufgetreten!

Lösung:

Da Ihre Zeichenfolge keine Standard-JSON-Zeichenfolge ist, a Standard-JSON-Zeichenfolge Jeder Zeichenfolgentyp muss durch „

Testcode

<?php 
$jsonStr1 = &#39;{status: {RetCode:0, msg: "success"}, data: {}}&#39;;
var_dump(json_decode($jsonStr1, true));
var_dump(json_last_error());
echo "--------分割线--------".PHP_EOL;
$jsonStr2 = &#39;{"status": {"RetCode":0, "msg": "success"}, "data": {}}&#39;;
var_dump(json_decode($jsonStr2, true));
Nach dem Login kopieren

Ergebnis

NULL
int(4)
--------分割线--------
array(2) {
  ["status"]=>
  array(2) {
    ["RetCode"]=>
    int(0)
    ["msg"]=>
    string(7) "success"
  }
  ["data"]=>
  array(0) {
  }
}
Nach dem Login kopieren

============== Update============= verursacht werden =

Nach dem Debuggen wurde festgestellt, dass es durch BOM verursacht wurde. Hier ist die Lösung

$dataString = $merchant_arr[&#39;data&#39;];
$A = substr($dataString, 0, 1);
$B = substr($dataString, 1, 1);
$C = substr($dataString, 2, 1);
if ((ord($A) == 239) && (ord($B) == 187) && (ord($C) == 191)) {
    $dataString = substr($dataString, 3);
}
$dataArray = json_decode($dataString, true);
Nach dem Login kopieren

Empfohlenes Lernen: „PHP7-Tutorial

Das obige ist der detaillierte Inhalt vonEs ist ein Problem mit php7 json_decode null aufgetreten!. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Verwandte Etiketten:
Quelle:segmentfault.com
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage