Einführung in JSON und seine Rolle im modernen JavaScript
JSON (JavaScript Object Notation) ist ein leichtgewichtiges Datenaustauschformat, das zum De-facto-Standard für die Übertragung von Informationen zwischen Client und Server geworden ist. Obwohl der Name "JavaScript" enthält, ist JSON ein sprachunabhängiges Format, aber seine Syntax ist der Syntax von JavaScript-Objekten sehr ähnlich. In der Node.js-Umgebung ist die Arbeit mit JSON eine alltägliche Aufgabe für jeden Backend-Entwickler: vom Lesen von Konfigurationsdateien bis zur Verarbeitung von API-Anfragen.
In diesem Artikel werden wir zwei Schlüsselmethoden für die Arbeit mit JSON in JavaScript im Detail besprechen: JSON.parse() zum Parsen (Umwandlung eines Strings in ein Objekt) und JSON.stringify() zur Serialisierung (Umwandlung eines Objekts in einen String). Sie lernen nicht nur die Grundlagen, sondern auch fortgeschrittene Techniken, die Ihnen helfen, zuverlässigeren und leistungsfähigeren Code in Node.js zu schreiben.
JSON.parse(): Umwandlung eines Strings in ein JavaScript-Objekt
Die Methode JSON.parse() nimmt einen String im JSON-Format entgegen und gibt das entsprechende JavaScript-Objekt zurück. Dies ist die grundlegende Operation beim Empfangen von Daten von einer API oder beim Lesen von JSON-Dateien.
Basis-Syntax und einfaches Beispiel
Die Syntax der Methode ist denkbar einfach:
JSON.parse(text[, reviver])Wobei text der JSON-String ist und der optionale Parameter reviver eine Funktion ist, die Werte vor der Rückgabe transformieren kann.
Betrachten wir ein einfaches Beispiel:
const jsonString = '{"name": "Node.js", "version": 18, "features": ["async", "await"]}';const parsedObject = JSON.parse(jsonString);
console.log(parsedObject.name); // "Node.js"console.log(parsedObject.version); // 18console.log(parsedObject.features); // ["async", "await"]Fehlerbehandlung beim Parsen
Einer der häufigsten Fehler ist der Versuch, ungültiges JSON zu parsen. In Node.js führt dies zum Auslösen einer SyntaxError-Ausnahme. Verwenden Sie immer die try...catch-Konstruktion für sicheres Parsen:
const invalidJson = '{"name": "Node.js", version: 18}'; // Fehler: Schlüssel version ohne Anführungszeichen
try { const data = JSON.parse(invalidJson); console.log(data);} catch (error) { if (error instanceof SyntaxError) { console.error('JSON-Parsing-Fehler:', error.message); // Ausgabe: JSON-Parsing-Fehler: Expected property name in JSON at position 27 }}Verwendung des reviver-Parameters zur Datentransformation
Der Parameter reviver ermöglicht es, Werte während des Parsens zu modifizieren. Dies ist besonders nützlich für die Umwandlung von String-Daten in Date-Objekte:
const jsonWithDate = '{"event": "Konferenz", "date": "2024-12-15T10:00:00Z"}';
const result = JSON.parse(jsonWithDate, (key, value) => { if (key === 'date') { return new Date(value); } return value;});
console.log(result.date instanceof Date); // trueconsole.log(result.date.toLocaleDateString('de-DE')); // 15.12.2024JSON.stringify(): Umwandlung eines Objekts in einen JSON-String
Die Methode JSON.stringify() führt die umgekehrte Operation durch – sie wandelt ein JavaScript-Objekt in einen JSON-String um. Dies ist notwendig beim Senden von Daten an den Server oder beim Speichern des Zustands in einer Datei.
Syntax und grundlegende Beispiele
Die vollständige Syntax der Methode umfasst drei Parameter:
JSON.stringify(value[, replacer[, space]])- value — das zu serialisierende Objekt (erforderlich)
- replacer — eine Funktion oder ein Array zum Filtern von Eigenschaften (optional)
- space — die Anzahl der Leerzeichen für die Formatierung (optional)
Ein einfaches Beispiel für die Serialisierung:
const user = { id: 101, name: "Alexej",