Joopi

Normale Version: JSON-Datei auslesen
Du siehst gerade eine vereinfachte Darstellung unserer Inhalte. Normale Ansicht mit richtiger Formatierung.
Mit json-Dateien arbeite ich im Grunde genommen nie. Zumindest nicht im privaten Bereich. Im beruflichen Umfeld muss ich nun mit json-Datei, die als Konfigurationsdateien dienen, arbeiten.

Generell, so habe ich es verstanden, dienen json-Dateien zum Datenaustausche. Das bedeutet, dass man in der Lage sein muss, die Inhalte einer json-Datei auszulesen und zu verwerten.

Die einfachste Art, um eine json-Datei auszulesen, ist folgende:

PHP-Code:
<?php
    $JsonParser 
file_get_contents("test_json.json");
    var_dump($JsonParser);
?>

Hierbei wird der komplette Inhalt der Datei ausgegeben. Man kann die Daten aber so nicht direkt verarbeiten. Es muss also anders angegangen werden.

Das Zauberwort ist mal wieder array verbunden mit json_decode.

PHP-Code:
<?php
    $Json 
file_get_contents("test_json.json");
    // Converts to an array 
    $myarray json_decode($Jsontrue);
    var_dump($myarray); // prints array
?>

Da eine json-Datei sturkturiert aufgebaut ist, ist es auch wohl relativ simpel diese Struktur in ein Array zu übernehmen. Die Verarbeitung von Arrays finde ich immer recht spektakulär, wenn ich ehrlich bin.

Die von mir genutzte Datei hat folgenden Inhalt (die Altersangabe habe ich dazugefummelt):

Zitat:[
    {
        "id": "01",
        "name": "Olivia Mason",
        "designation": "System Architect",
        "alter":
            {
            "jahre": 56
            }
    },
    {
        "id": "02",
        "name": "Jennifer Laurence",
        "designation": "Senior Programmer",
        "alter":
            {
            "jahre": 41
            }
    },
    {
        "id": "03",
        "name": "Medona Oliver",
        "designation": "Office Manager",
        "alter":
            {
            "jahre": 27
            }
    }
]

Eine einfache Auswertung bzw. Ausgabe könnte die zeilenweise Darstellung der 3 Datensätze sein und wird wie folgt erzeugt:

PHP-Code:
<?php
    
foreach($myarray AS $value) {
        echo $value["id"] . " " $value["name"] . " " $value["designation"] . " " $value["alter"]["jahre"] . "\n";
    }
?>

Damit werden alle drei Datensätze ausgegeben. Das Array hat quasi zwei Ebenen. Die Altersangabe ist eben auch auszugeben und muss entsprechend angepackt werden.

Will man nur bestimmte Datensätze sehen, so kann via IF-Abfrage eine Ausgabemenge zu steuern:

PHP-Code:
<?php
    
foreach($myarray AS $value) {
        if ($value["id"] == "02") {
            echo $value["id"] . " " $value["name"] . " " $value["designation"] . " " $value["alter"]["jahre"] . "\n";
        }
    }
?>

In diesem Fall wird nur der Datensatz ausgegeben, der im Feld ID den Wert 02 stehen hat.

Ob ich jemals etwas mit json-Dateien machen werde, kann ich nicht sagen. Eine Anwwendung hätte ich im Bereich der Hugo-Installationen, denn via json-Dateien kann man Datenbankanwendungen darstellen und Tabellen ausgeben.