Comment extraire les données de JSON en PHP

Minahil Noor 7 octobre 2020
Comment extraire les données de JSON en PHP

Dans cet article, nous introduirons des méthodes pour extraire des données de JSON en PHP.

  • Utilisation de la fonction json_decode().

Utilisez la fonction json_decode() pour extraire des données de JSON en PHP

Nous utiliserons la fonction intégrée json_decode() pour extraire les données de JSON. Nous allons convertir la chaîne JSON en un objet ou un tableau pour extraire les données. La syntaxe correcte pour utiliser cette fonction est la suivante.

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

La fonction intégrée json_decode() a quatre paramètres. Les détails de ses paramètres sont les suivants

Paramètres Description
$jsonString obligatoire Il s’agit de la chaîne codée en JSON dont nous voulons extraire les données.
$assoc facultatif Il s’agit d’une variable booléenne. Si elle est VRAIE, la fonction retournera un tableau associatif. Si elle est FAUSSE, la fonction retournera l’objet.
$depth facultatif C’est un nombre entier. Il indique la profondeur spécifiée.
$options facultatif Il parle du masque de bit de JSON_BIGINT_AS_STRING**, JSON_INVALID_UTF8_IGNORE, JSON_INVALID_UTF8_SUBSTITUTE, JSON_OBJECT_AS_ARRAY, **JSON_THROW_ON_ERROR. Vous pouvez consulter leurs coordonnées ici.

Cette fonction retourne NULL si la chaîne de JSON n’est pas dans un format approprié. Elle retourne un tableau ou un objet associatif en fonction du paramètre $assoc.

Le programme ci-dessous montre comment nous pouvons utiliser la fonction json_decode() pour extraire des données d’une chaîne JSON.

<?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);
?> 
    

La fonction retournera un objet parce que nous n’avons pas passé le paramètre $assoc.

Production:

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"
  }
}

Si nous passons le paramètre $assoc, la fonction retournera un tableau associatif.

<?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);
?> 

Production:

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"
  }
}

Si la fonction a renvoyé un objet, nous pouvons accéder aux données de la manière suivante:

<?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;
?> 

La fonction retournera le premier nom des données extraites.

Production:

The first name is: 
Olivia

Si la fonction a renvoyé un tableau, nous pouvons accéder directement aux données de la manière suivante:

<?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'];
?> 

La fonction retournera le prénom des données extraites.

Production:

The first name is: 
Olivia

Nous pouvons également itérer à travers notre array.

<?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";
}
?> 

La fonction renverra les données extraites.

Production:

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

Article connexe - PHP JSON