Wie man Daten aus JSON in PHP extrahiert

Minahil Noor 4 Oktober 2020
Wie man Daten aus JSON in PHP extrahiert

In diesem Artikel stellen wir Methoden vor, um Daten aus JSON in PHP zu extrahieren.

  • Verwendung der Funktion json_decode()

Verwenden Sie die Funktion json_decode(), um Daten aus JSON in PHP zu extrahieren

Wir werden die eingebaute Funktion json_decode() verwenden, um Daten aus JSON zu extrahieren. Wir werden die JSON-String in ein Objekt oder ein Array konvertieren, um die Daten zu extrahieren. Die korrekte Syntax zur Verwendung dieser Funktion lautet wie folgt.

json_decode($jsonString, $assoc, $depth, $options);

Die eingebaute Funktion json_decode() hat vier Parameter. Die Einzelheiten ihrer Parameter sind wie folgt

Parameter Beschreibung
$jsonString obligatorisch Es ist der JSON-kodierte String, aus dem wir die Daten extrahieren wollen.
$assoc optional Es ist eine Boolean-Variable. Wenn sie TRUE ist, gibt die Funktion ein assoziatives Array zurück. Wenn sie FALSE ist, gibt die Funktion das Objekt zurück.
$depth optional Es ist eine ganze Zahl. Sie gibt Auskunft über die angegebene Tiefe.
$options optional Es berichtet über die Bitmaske von JSON_BIGINT_AS_STRING**, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, **JSON_THROW_ON_ERROR. Sie können ihre Angaben hier überprüfen.

Diese Funktion gibt NULL zurück, wenn die JSON-String nicht im richtigen Format ist. Sie gibt ein assoziatives Array oder Objekt zurück, abhängig vom Parameter $assoc.

Das Programm unten zeigt, wie wir die Funktion json_decode() verwenden können, um Daten aus einer JSON-String zu extrahieren.

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString);
echo("The data is: \n");
var_dump($data);
?> 
    

Die Funktion wird ein Objekt zurückgeben, weil wir den Parameter $assoc nicht übergeben haben.

Ausgabe:

The data is: 
object(stdClass)#1 (3) {
  ["firstName"]=>
  string(6) "Olivia"
  ["lastName"]=>
  string(5) "Mason"
  ["dateOfBirth"]=>
  object(stdClass)#2 (3) {
    ["year"]=>
    string(4) "1999"
    ["month"]=>
    string(2) "06"
    ["day"]=>
    string(2) "19"
  }
}

Wenn wir den Parameter $assoc übergeben, gibt die Funktion ein assoziatives Array zurück.

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString, true);
echo("The data is: \n");
var_dump($data);
?> 

Ausgabe:

The data is: 
array(3) {
  ["firstName"]=>
  string(6) "Olivia"
  ["lastName"]=>
  string(5) "Mason"
  ["dateOfBirth"]=>
  array(3) {
    ["year"]=>
    string(4) "1999"
    ["month"]=>
    string(2) "06"
    ["day"]=>
    string(2) "19"
  }
}

Wenn die Funktion ein Objekt zurückgegeben hat, können wir wie folgt auf die Daten zugreifen:

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString);
echo("The first name is: \n");
echo $data->firstName;
?> 

Die Funktion gibt den Vornamen aus den extrahierten Daten zurück.

Ausgabe:

The first name is: 
Olivia

Wenn die Funktion ein Array zurückgegeben hat, können wir auf folgende Weise direkt auf die Daten zugreifen:

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth":
    {
        "year":"1999",
        "month":"06",
        "day":"19"
    }
}';
$data = json_decode($jsonString, true);
echo("The first name is: \n");
echo $data['firstName'];
?> 

Die Funktion gibt den Vornamen aus den extrahierten Daten zurück.

Ausgabe:

The first name is: 
Olivia

Wir können auch durch unser Array iterieren.

<?php 
$jsonString ='{
    "firstName":"Olivia",
    "lastName":"Mason",
    "dateOfBirth": "19-09-1999"
}';
$data = json_decode($jsonString, true);
foreach ($data as $key=> $data1) {
    echo $key, " : ";
    echo $data1, "\n";
}
?> 

Die Funktion gibt die extrahierten Daten zurück.

Ausgabe:

firstName : Olivia
lastName : Mason
dateOfBirth : 19-09-1999

Verwandter Artikel - PHP JSON