Comment lire et parcourir un fichier JSON en PHP ?

Réponses rédigées par Antoine
Dernière mise à jour : 2019-01-18 13:31:04
Thèmes : php - json
Question

J’essaie d'analyser un fichier JSON avec PHP, dont voici le contenu :

{
    "Bob": {
        "status":"Présent"
    },
    "Pierre": {
        "status":"Absent"
    },
    "James": {
        "status":"Absent",
        "age":56
    }
}

Mon soucis c'est que je ne connais pas les noms (comme 'Bob' , 'Pierre' ) et toutes les clés et valeurs disponibles (comme 'status' , 'age' ) à l'avance.

Réponse

Pour parcourir un tableau JSON multidimensionnel, vous pouvez utiliser RecursiveArrayIterator.

<?php
$json = <<< JSON
{
    "Bob": {
        "status":"Présent"
    },
    "Pierre": {
        "status":"Absent"
    },
    "James": {
        "status":"Absent",
        "age":56
    }
}
JSON;

$jsonIterator = new RecursiveIteratorIterator(
    new RecursiveArrayIterator(json_decode($json, TRUE)),
    RecursiveIteratorIterator::SELF_FIRST);

foreach ($jsonIterator as $key => $val) {
    if(is_array($val)) {
        echo "$key:\n";
    } else {
        echo "$key => $val\n";
    }
}
?>