Heim  >  Artikel  >  Backend-Entwicklung  >  So konvertieren Sie einen JSON-String in ein Array in PHP

So konvertieren Sie einen JSON-String in ein Array in PHP

PHPz
PHPzOriginal
2023-04-23 09:16:15582Durchsuche

In PHP müssen wir häufig JSON-Strings in Arrays konvertieren. Dies hilft uns bei der Bewirtschaftung und Verarbeitung der Daten. Schließlich ist JSON ein leichtes Datenaustauschformat und viele Netzwerkschnittstellen geben Daten im JSON-Format zurück.

Also, wie konvertiert man einen JSON-String in ein Array in PHP? Lassen Sie es uns unten vorstellen.

  1. Verwenden Sie die Funktion json_decode()

In PHP können wir die Funktion json_decode() verwenden, um einen JSON-String in ein PHP-Array zu konvertieren . Die Syntax der Funktion json_decode() lautet wie folgt:

mixed json_decode ( string $json [, bool $assoc = FALSE [, int $depth = 512 [, int $options = 0 ]]] )

Unter anderem ist der Parameter $json die zu konvertierende JSON-Zeichenfolge. Der Parameter $assoc ist optional und der Standardwert ist FALSE. Wenn er auf TRUE gesetzt ist, ist das konvertierte Array ein assoziatives Array. Der Parameter $ Depth ist optional und gibt die Tiefe der rekursiven Analyse von JSON-Zeichenfolgen an, die größer als diese Tiefe sind und in NULL konvertiert werden. Der Parameter $options ist optional und stellt JSON-Parsing-Optionen dar, die auf JSON_BIGINT_AS_STRING, JSON_OBJECT_AS_ARRAY oder JSON_THROW_ON_ERROR festgelegt werden können.

Das Folgende ist ein Beispiel für die Konvertierung einer JSON-Zeichenfolge in ein Array:

$json_str = '{"name": "Tom", "age": 20, "gender": "male"}';
$arr = json_decode($json_str, true);

print_r($arr);

Ausgabeergebnis:

Array
(
    [name] => Tom
    [age] => 20
    [gender] => male
)
  1. Lösen Sie das Problem von chinesischen verstümmelten Zeichen

Wenn die JSON-Zeichenfolge chinesische Zeichen enthält, können im konvertierten Array verstümmelte Zeichen erscheinen. Zu diesem Zeitpunkt müssen wir die Option JSON_UNESCAPED_UNICODE verwenden, um alle Nicht-ASCII-Zeichen von der Hexadezimalkodierung auszuschließen.

Das Folgende ist ein Beispiel mit der Option JSON_UNESCAPED_UNICODE:

$json_str = '{"name": "汤姆", "age": 20, "gender": "男"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE);

print_r($arr);

Ausgabeergebnis:

Array
(
    [name] => 汤姆
    [age] => 20
    [gender] => 男
)
  1. Auflösen von JSON-Zeichenfolgen mit Sonderzeichen Frage

Manchmal enthält die JSON-Zeichenfolge Sonderzeichen, z. B. Inhalte bestehend aus < oder > Diese Sonderzeichen müssen in der JSON-Syntaxspezifikation maskiert werden, einige von der Schnittstelle zurückgegebene JSON-Zeichenfolgen werden jedoch nicht maskiert.

Zu diesem Zeitpunkt müssen wir die Option JSON_UNESCAPED_SLASHES verwenden, um sicherzustellen, dass diese Sonderzeichen nicht maskiert werden.

Das Folgende ist ein Beispiel für die Verwendung der Option JSON_UNESCAPED_SLASHES:

$json_str = '{"name": "<Tom>", "age": 20, "gender": "&male&"}';
$arr = json_decode($json_str, true, 512, JSON_UNESCAPED_UNICODE | JSON_UNESCAPED_SLASHES);

print_r($arr);

Ausgabeergebnis:

Array
(
    [name] => <Tom>
    [age] => 20
    [gender] => &male&
)

Oben wird beschrieben, wie eine JSON-Zeichenfolge in konvertiert wird Ich hoffe, es hilft Ihnen.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen JSON-String in ein Array in PHP. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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