Heim >Backend-Entwicklung >PHP-Problem >So konvertieren Sie JSON-Daten in PHP in ein Array
Während des Entwicklungsprozesses müssen wir häufig Daten im JSON-Format in PHP-Arrays konvertieren. Dieser Bedarf tritt sehr häufig auf, wenn mit dem Frontend interagiert wird, Daten von anderen Systemschnittstellen empfangen werden usw. In diesem Artikel wird erläutert, wie Sie JSON-Daten in PHP in ein PHP-Array konvertieren.
PHP verfügt über eine integrierte Funktion json_decode(), die Zeichenfolgen im JSON-Format in PHP-Arrays konvertieren kann. Das Folgende ist ein Beispiel für die Verwendung der Funktion json_decode():
$json = '{"name":"john","age":30,"city":"New York"}'; $array = json_decode($json, true); print_r($array);
Das Ausgabeergebnis lautet:
Array ( [name] => john [age] => 30 [city] => New York )
Im obigen Beispiel ist $json eine Zeichenfolge im JSON-Format und $array wird nach der Konvertierung von $json mit json_decode erhalten ()-Funktion. PHP-Array. Es ist zu beachten, dass der zweite Parameter der Funktion json_decode() wahr sein muss, was bedeutet, dass das konvertierte JSON-Objekt in ein PHP-Array konvertiert wird.
Bei der Verarbeitung von JSON-Daten mit Chinesisch müssen wir auf das Problem der Zeichenkodierung achten, da sonst beim Konvertierungsprozess Fehler auftreten können.
Angenommen, es gibt einen JSON-String, der Chinesisch enthält, wie unten gezeigt:
$json = '{"name":"张三","age":30}';
Wenn Sie den obigen Code zum Konvertieren des JSON-Strings in ein PHP-Array verwenden, wird ein Hinweisfehler mit der Meldung „json_decode(): Eingabestring enthält ungültig“ generiert UTF-8-Zeichen“ (die JSON-Zeichenfolge enthält ungültige UTF-8-Zeichen).
Das liegt daran, dass die Funktion json_decode() standardmäßig nur die UTF-8-Codierung unterstützt und die chinesischen Zeichen in der JSON-Zeichenfolge in GBK oder anderen Codierungsmethoden codiert sind, sodass wir sie zuerst in die UTF-8-Codierung konvertieren müssen Führen Sie dann die JSON-Konvertierung durch.
Verwenden Sie die in PHP integrierte Funktion iconv(), um die Zeichenfolge von GBK in die UTF-8-Kodierung zu konvertieren:
$json = '{"name":"张三","age":30}'; $json_utf8 = iconv('GBK', 'UTF-8//IGNORE', $json); $array = json_decode($json_utf8, true); print_r($array);
Die Ergebnisausgabe lautet:
Array ( [name] => 张三 [age] => 30 )
Bei der Konvertierung von JSON-Daten kommt es manchmal vor Sie müssen es validieren, um sicherzustellen, dass es der Struktur und dem Format entspricht, die wir erwarten.
PHP verfügt über eine integrierte Funktion json_last_error(), die den durch den letzten JSON-Konvertierungsvorgang generierten Fehlercode abrufen kann. Anhand des Fehlercodes können wir beurteilen, ob die JSON-Daten den Erwartungen entsprechen.
Der folgende Code zeigt beispielsweise, wie Sie feststellen können, ob eine illegale JSON-Zeichenfolge bei der Konvertierung den Erwartungen entspricht:
$json = '{"name":"john","age":30,}, {"name":"mike","age":32}'; $array = json_decode($json, true); if (json_last_error() === JSON_ERROR_NONE) { echo 'JSON 格式正确'; } else { echo 'JSON 格式错误'; }
Im obigen Code enthält $json zwei JSON-Objekte, die nicht durch Kommas getrennt sind. Es handelt sich um einen JSON-Formatfehler. Daher gibt die Funktion json_last_error() JSON_ERROR_SYNTAX zurück, was auf einen JSON-Syntaxfehler hinweist.
Um das Debuggen und Lesen zu erleichtern, können wir bei der Verarbeitung von JSON-Daten den JSON-Daten auch Formate wie Einrückungen und Zeilenumbrüche hinzufügen, um sie leichter lesbar zu machen.
Die in PHP integrierte Funktion json_encode() kann PHP-Arrays in lesbare Zeichenfolgen im JSON-Format konvertieren. Zum Beispiel:
$array = [ 'name' => 'john', 'age' => 30, 'city' => 'New York' ]; $json = json_encode($array, JSON_PRETTY_PRINT); echo $json;
Das Ausgabeergebnis ist:
{ "name": "john", "age": 30, "city": "New York" }
Nachdem wir $array im obigen Code in eine Zeichenfolge im JSON-Format konvertiert haben, übergeben wir einen JSON_PRETTY_PRINT-Parameter, was bedeutet, dass die JSON-Zeichenfolge eingerückt und umbrochen wird, um ihre Lesbarkeit zu verbessern .
Es ist zu beachten, dass der Parameter JSON_PRETTY_PRINT in der Funktion json_encode() nur in PHP Version 5.4 und höher unterstützt wird.
Zusammenfassung
In PHP können wir die integrierte Funktion json_decode() verwenden, um eine JSON-formatierte Zeichenfolge in ein PHP-Array zu konvertieren. Bei der Verarbeitung von JSON-Daten, die Chinesisch enthalten, müssen Sie auf Zeichenkodierungsprobleme achten. Bei der Konvertierung von JSON-Daten müssen Sie überprüfen, ob sie den Erwartungen entsprechen. Sie können die Funktion json_encode() verwenden, um deren Lesbarkeit zu optimieren.
Das Obige ist die Methode zum Konvertieren von JSON in ein PHP-Array. Ich hoffe, dass es Ihnen bei der tatsächlichen Entwicklung hilfreich sein wird.
Das obige ist der detaillierte Inhalt vonSo konvertieren Sie JSON-Daten in PHP in ein Array. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!