JSON-Verarbeitung in JavaScript (Node.js): Vollständiger Leitfaden

Online Python-Trainer für Anfänger

Lernen Sie Python einfach ohne theoretische Überlastung. Lösen Sie praktische Aufgaben mit automatischer Überprüfung und schreiben Sie Code direkt im Browser.

Kurs starten

JSON in Node.js: Vollständiger Leitfaden zur Datenverarbeitung



JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das sich zum De-facto-Standard für Web-APIs, Konfigurationsdateien und die Speicherung strukturierter Informationen entwickelt hat. In der Node.js-Umgebung ist die Arbeit mit JSON ein wesentlicher Bestandteil nahezu jeder Anwendung. In diesem Artikel betrachten wir alle Aspekte der JSON-Verarbeitung im Detail: vom grundlegenden Parsing bis zur fortgeschrittenen Stream-Verarbeitung.



1. Grundlagen: Parsing und Serialisierung



In Node.js werden für die Arbeit mit JSON zwei globale Methoden verwendet: JSON.parse() und JSON.stringify(). Sie sind ohne das Einbinden zusätzlicher Module verfügbar.



JSON.parse() — Umwandlung eines Strings in ein Objekt

Die Methode JSON.parse() nimmt einen JSON-String entgegen und gibt das entsprechende JavaScript-Objekt zurück. Wichtig ist, dass der String streng gültiges JSON sein muss.



const jsonString = '{"name": "Alice", "age": 30, "isAdmin": false}';const user = JSON.parse(jsonString);console.log(user.name); // Aliceconsole.log(typeof user); // object


Die Methode unterstützt auch ein zweites Argument – eine "Reviver"-Funktion, die es ermöglicht, Werte während des Parsings zu transformieren:



const data = '{"date": "2025-01-15T10:00:00Z"}';const parsed = JSON.parse(data, (key, value) => {    if (key === 'date') return new Date(value);    return value;});console.log(parsed.date instanceof Date); // true


JSON.stringify() — Umwandlung eines Objekts in einen String

Die Methode JSON.stringify() führt die umgekehrte Umwandlung durch – sie verwandelt ein JavaScript-Objekt in einen JSON-String.



const user = {    name: 'Bob',    age: 25,    hobbies: ['coding', 'reading']};const json = JSON.stringify(user);console.log(json); // {"name":"Bob","age":25,"hobbies":["coding","reading"]}


Die Methode akzeptiert drei Argumente: den Wert, eine Ersetzungsfunktion (replacer) und die Anzahl der Leerzeichen für die Formatierung (space):



const obj = { a: 1, b: 2, c: 3 };// Formatierte Ausgabe mit Einrückungenconsole.log(JSON.stringify(obj, null, 2));// {//   "a": 1,//   "b": 2,//   "c": 3// }

// Filterung von Schlüsseln mit replacerconst filtered = JSON.stringify(obj, ['a', 'c'], 2);console.log(filtered);// {// "a": 1,// "c": 3// }


2. Lesen und Schreiben von JSON-Dateien



In realen Anwendungen werden JSON-Daten oft in Dateien gespeichert. Für die Arbeit mit dem Dateisystem wird das integrierte Modul fs verwendet.



Synchrones Lesen und Schreiben

const fs = require('fs');const path = require('path');

const filePath = path.join(__dirname, 'config.json');

// Lesenconst rawData = fs.readFileSync(filePath, 'utf-8');const config = JSON.parse(rawData);console.log(config.port);

// Schreibenconst newConfig = { port: 3000, host: 'localhost' };fs.writeFileSync(filePath, JSON.stringify(newConfig, null, 2));


Asynchrones Lesen und Schreiben (empfohlene Methode)

const fs = require('fs').promises;

async function readConfig() { try { const data = await fs.readFile('config.json', 'utf-8'); return JSON.parse(data); } catch (err) { console.error('Fehler beim Lesen der Datei:', err); throw err; }}

async function writeConfig(config) { await fs.writeFile('config.json', JSON.stringify(config, null, 2));}

// Verwendung(async () => { const config = await readConfig(); config.port = 4000; await writeConfig(config);})();


3. JSON-Validierung



Manchmal muss überprüft werden, ob ein String gültiges JSON ist, ohne eine Ausnahme auszulösen. Der zuverlässigste Weg ist, JSON.parse() in einen try-catch-Block zu packen:




                
    
    

Empfehlungen