Heim > Backend-Entwicklung > PHP-Problem > So konvertieren Sie JSON-Daten in PHP in ein Array

So konvertieren Sie JSON-Daten in PHP in ein Array

PHPz
Freigeben: 2023-04-19 11:48:36
Original
678 Leute haben es durchsucht

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.

  1. In PHP integrierte Funktion json_decode()

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);
Nach dem Login kopieren

Das Ausgabeergebnis lautet:

Array
(
    [name] => john
    [age] => 30
    [city] => New York
)
Nach dem Login kopieren

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.

  1. JSON mit Chinesisch analysieren

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}';
Nach dem Login kopieren

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);
Nach dem Login kopieren

Die Ergebnisausgabe lautet:

Array
(
    [name] => 张三
    [age] => 30
)
Nach dem Login kopieren
  1. Überprüfung von JSON-Daten

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 格式错误';
}
Nach dem Login kopieren

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.

  1. Lesbarkeit von JSON-Daten

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;
Nach dem Login kopieren

Das Ausgabeergebnis ist:

{
    "name": "john",
    "age": 30,
    "city": "New York"
}
Nach dem Login kopieren

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!

Quelle:php.cn
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