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.
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,
};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}'.
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.
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 EigenschaftMit 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.