JSON Datei mit Node.js parsen
In diesem Tutorial zeige ich wie man eine JSON Datei mit Node.js parsen kann. Parsen von JSON benötigt man in jedem Projekt. Mit Node.js testet man schnell und einfach die Datenstrukturen.
JSON Datei mit Node.js parsen
Die JavaScript Object Notation (JSON Dateiformat) ist das aktuell vermutlich wichtigste Dateiformat. Es ist der Grundbaustein viele Webanwendungen und mittlerweile das wichtigste Austauschformat im Cloud Umfeld (siehe dazu Microservice Architektur).
Beispiel
Am besten testet man das Parsen einer JSON Datei mit einem möglichst komplexen Beispiel. Die folgende JSON Struktur enthält mehrere Properties und mehrere Arrays in unterschiedlichen Hierarchien.
{"tasks":[{"name":"Task1","duedate":"2022-01-31 12:00","details":[{"name":"Detail1","type":"text","value":"Das ist ein ganz langer Text..."},{"name":"Detail2","type":"bool","value":"Alles erledigt?"},{"name":"Detail3","type":"image","value":"Bitte ein Bild als Beweis:"}]},{"name":"Task2","duedate":"2022-01-31 14:00","details":[{"name":"Detail1","type":"text","value":"Das ist ein ganz langer Text..."},{"name":"Detail2","type":"bool","value":"Alles erledigt?"},{"name":"Detail3","type":"image","value":"Bitte ein Bild als Beweis:"}]}]}
In der Praxis begegnet man immer wieder JSON Dateien in ähnlicher Komplexität. Deshalb muss man diese auch parsen können. JavaScript stellt fürs parsen folgende Funktion bereit:
const jsonObject = JSON.parse( jsonString);
Dabei wird aus einem JSON String ein JSON Objekt, welches man im Code verwenden kann. Die spannende Frage ist nun: wie kommt man in Node.js von einer Datei im Dateisystem zu diesem JSON String? Die Interaktion mit dem Dateisystem ist in Node.js über das FS Modul möglich. Konkret benötigen wir:
fs.readFile()
Das fertige Programm sieht wie folgt aus:
const fs = require('fs'); // read JSON file fs.readFile('./data.json', 'utf8', (err, json) => { if (err) { console.log(`Error reading file: ${err}`); } else { // parse JSON string to JSON object const data= JSON.parse(json); // print all tasks console.log(data.tasks); // print all details console.log(data.tasks[0].details); } });
Fazit
JSON Dateien parsen gehört zu den grundlegenden Funktionen jeder Applikation. Je nach Umgebung kann man dafür unterschiedliche Bibliotheken nutzen. Node.js vereint alle gängigen Dateioperationen in einem einfach zu nutzenden Modul mit dem Namen fs.