44 JSON

JSON, oder JavaScript Object Notation, ist ein weit verbreitetes Datenformat, das zum Speichern und Übertragen von Daten verwendet wird, insbesondere in Webanwendungen. In diesem Kapitel werden wir uns ansehen, wie man JSON-Daten in TypeScript erstellt, liest, ändert und konvertiert.

44.1 Erstellen von JSON-Objekten

JSON-Objekte sind im Grunde genommen JavaScript-Objekte. Sie können also einfach ein JavaScript-Objekt erstellen und es später in eine JSON-Zeichenkette umwandeln:

let user = {
    name: "John Doe",
    email: "john.doe@example.com",
    age: 30,
    isAdmin: false,
};

44.2 Konvertieren von JavaScript-Objekten in JSON

Um ein JavaScript-Objekt in eine JSON-Zeichenkette zu konvertieren, verwenden Sie die Methode JSON.stringify():

let json = JSON.stringify(user);
console.log(json);

Dies gibt eine Zeichenkette zurück, die das ursprüngliche Objekt repräsentiert, z. B. '{"name":"John Doe","email":"john.doe@example.com","age":30,"isAdmin":false}'.

44.3 Konvertieren von JSON in JavaScript-Objekte

Umgekehrt können Sie eine JSON-Zeichenkette in ein JavaScript-Objekt konvertieren, indem Sie die Methode JSON.parse() verwenden:

let obj = JSON.parse(json);
console.log(obj);

Dies gibt das ursprüngliche JavaScript-Objekt zurück.

44.4 Lesen und Ändern von JSON-Daten

Da JSON-Objekte einfach JavaScript-Objekte sind, können Sie auf ihre Eigenschaften zugreifen und diese ändern, wie Sie es bei normalen JavaScript-Objekten tun würden:

console.log(obj.name);  // Ausgabe: "John Doe"
obj.age = 31;  // Ändern einer Eigenschaft

44.5 Arbeiten mit JSON-Dateien

Mit Node.js können Sie JSON-Daten von einer Datei lesen oder in eine Datei schreiben, indem Sie das fs-Modul verwenden. Zum Beispiel können Sie eine JSON-Datei lesen und in ein JavaScript-Objekt konvertieren:

import * as fs from 'fs';
import * as util from 'util';

const readFile = util.promisify(fs.readFile);

async function readJsonFile(path: string): Promise<any> {
    const data = await readFile(path, 'utf8');
    return JSON.parse(data);
}

Und hier ist ein Beispiel, wie man ein JavaScript-Objekt in eine JSON-Datei schreibt:

const writeFile = util.promisify(fs.writeFile);

async function writeJsonFile(path: string, data: any): Promise<void> {
    const json = JSON.stringify(data, null, 2);
    await writeFile(path, json, 'utf8');
}

In diesem Beispiel konvertiert JSON.stringify(data, null, 2) das Objekt data in eine formatierte JSON-Zeichenkette mit zwei Leerzeichen Einrückung.