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

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

PHPz
PHPzOriginal
2023-03-23 11:11:571625Durchsuche

Im PHP-Entwicklungsprozess ist das Konvertieren von Json-Strings in Objekte und Arrays ein häufiger Vorgang. Json ist ein Datenformat, während PHP eine Programmiersprache ist, die über die Funktion json_decode() Json-Strings in PHP-Objekte und -Arrays konvertieren kann. In diesem Artikel erfahren Sie, wie Sie Json-Strings mithilfe einer der gängigsten Methoden zur Verwendung von Json-Strings in assoziative PHP-Arrays und -Objekte konvertieren.

Format des Json-Strings

Bevor wir lernen, Json-String in PHP-Objekte und -Arrays zu konvertieren, schauen wir uns zunächst das Format des Json-Strings an. Bei einer JSON-Zeichenfolge handelt es sich um Textdaten, die Daten in Form von Schlüssel-Wert-Paaren speichern. Jedes Schlüssel-Wert-Paar besteht aus einem „Schlüssel“ und einem „Wert“. Der „Schlüssel“ ist in doppelte Anführungszeichen gesetzt. Der „Wert“ kann ein numerischer Wert, eine Zeichenfolge, ein boolescher Wert, ein Nullwert oder ein JSON sein Objekt oder ein Json-Array.

Das Folgende ist ein Beispiel für eine Json-Zeichenfolge:

{
    "name": "张三",
    "age": 25,
    "gender": "男",
    "address": {
        "province": "北京",
        "city": "朝阳区",
        "street": "和平路"
    },
    "hobbies": [
        "篮球",
        "游泳",
        "旅游"
    ]
}

Im obigen Beispiel sind „Name“, „Alter“, „Geschlecht“, „Adresse“ und „Hobbys“ die „Schlüssel“ dieser Json-Zeichenfolge, sie Entspricht jeweils „Zhang San“, „25“, „männlich“, „Adresse“ und „Hobbys“. Unter diesen ist „Adresse“ ein Json-Objekt und „Hobbys“ ein Json-Array.

Json-String in ein PHP-Array konvertieren

In PHP können Sie einen Json-String in ein Array konvertieren, indem Sie die Funktion json_decode() verwenden. Die Syntax der Funktion json_decode() lautet wie folgt:

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

Unter diesen ist der Parameter $json der zu konvertierende Json-String und der Parameter $assoc gibt an, ob das Json-Objekt in ein assoziatives PHP-Array konvertiert werden soll (true bedeutet). Konvertierung in ein assoziatives PHP-Array, false bedeutet Konvertierung in ein PHP-Objekt), der Parameter $ Depth gibt die maximale Konvertierungstiefe an (Standard ist 512) und der Parameter $options gibt die Optionen während der Dekodierung an (Standard ist 0).

Hier ist ein Beispiel für die Konvertierung eines Json-Strings in ein PHP-Array:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $arr = json_decode($json_str, true);

  print_r($arr);

  ?>

Im obigen Beispiel definieren wir zunächst einen Json-String $json_str. Wir verwenden die Funktion json_decode(), um $json_str in ein PHP-Array zu konvertieren und das Ergebnis in der Variablen $arr zu speichern. Abschließend verwenden wir die Funktion print_r(), um den Inhalt des Arrays auszugeben.

Das Ausgabeergebnis lautet wie folgt:

Array
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => Array
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)

Json-String in PHP-Objekt konvertieren

Zusätzlich zur Konvertierung des Json-Strings in ein PHP-Array können Sie ihn auch in ein PHP-Objekt konvertieren. Dieser Prozess kann auch mit der Funktion json_decode() implementiert werden. Setzen Sie einfach den zweiten Parameter auf false oder lassen Sie ihn weg.

Hier ist ein Beispiel für die Konvertierung eines Json-Strings in ein PHP-Objekt:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  print_r($obj);

  ?>

Im obigen Beispiel setzen wir den zweiten Parameter auf false und das Ergebnis wird in ein PHP-Objekt konvertiert.

Das Ausgabeergebnis lautet wie folgt:

stdClass Object
(
    [name] => 张三
    [age] => 25
    [gender] => 男
    [address] => stdClass Object
        (
            [province] => 北京
            [city] => 朝阳区
            [street] => 和平路
        )

    [hobbies] => Array
        (
            [0] => 篮球
            [1] => 游泳
            [2] => 旅游
        )

)

Konvertieren Sie die Objekte im Json-String in ein PHP-Array.

Wenn der Json-String Objekte enthält und in ein assoziatives PHP-Array konvertiert werden muss, können Sie ihn zuerst in konvertieren PHP-Objekt und konvertieren Sie es dann mit der Funktion typecast() in ein assoziatives Array.

Hier ist ein Beispiel für die Konvertierung eines Objekts in einem Json-String in ein assoziatives PHP-Array:

  <?php

  $json_str = &#39;{"name":"张三","age":25,"gender":"男","address":{"province":"北京","city":"朝阳区","street":"和平路"},"hobbies":["篮球","游泳","旅游"]}&#39;;

  $obj = json_decode($json_str);

  $arr = json_decode(json_encode($obj), true);

  print_r($arr);

  ?>

Im obigen Beispiel konvertieren wir zuerst den Json-String in ein PHP-Objekt mit der Funktion json_decode(). Verwenden Sie dann die Funktion json_encode(), um das PHP-Objekt in einen Json-String zu konvertieren, und verwenden Sie erneut die Funktion json_decode(), um es in ein assoziatives PHP-Array zu konvertieren. Abschließend verwenden wir die Funktion print_r(), um den Inhalt des Arrays auszugeben.

Die Ausgabe ist die gleiche wie im ersten Beispiel.

Das obige ist der detaillierte Inhalt vonSo konvertieren Sie einen JSON-String in ein Array und ein Objekt 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