Strategien zum sicheren Parsen von JSON
Nicht vertrauenswürdiges JSON mit try/catch, kleinen Strukturprüfungen, Standardwerten und kleinen Hilfsfunktionen sicher parsen
Strategien zum sicheren Parsen von JSON ist eine kostenlose JavaScript Academy-Lektion auf CoddyKit. Dies ist Lektion 3 von 3. Du kannst die komplette Lektion unten kostenlos lesen – dann übst du sie direkt im Browser mit einem integrierten Code-Editor und einem KI-Tutor rund um die Uhr. Sie ist Teil des JavaScript Academy-Lernpfads, und dein Fortschritt wird über Web und CoddyKit-App synchronisiert. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Warum sicheres Parsen?
Ziel: JSON ohne Überraschungen lesen.
- try/catch um parse
- Kleine safeParse-Hilfsfunktion
- Strukturprüfungen für erforderliche Felder
- Standardwerte für optionale Werte

safeParse-Hilfsfunktion
Verwenden Sie eine kleine safeParse-Funktion, um Abstürze zu vermeiden und Fehler klar sichtbar zu machen.
// safeParse: never throws, returns { ok, value, error }
function safeParse(text) {
try {
const value = JSON.parse(text);
return { ok: true, value: value, error: null };
} catch (e) {
return { ok: false, value: null, error: String(e.message) };
}
}
// Demo
const good = safeParse("{\"name\":\"Ayla\",\"age\":20}");
const bad = safeParse("{broken}");
console.log("good.ok:", good.ok, "name:", good.value && good.value.name);
console.log("bad.ok:", bad.ok, "error:", bad.error);

Strukturprüfungen
Fügen Sie kleine Validatoren für erforderliche Felder (name, age) und einfache Wertebereiche hinzu.
// Validate required fields and simple types
function isNonEmptyString(x) {
return typeof x === "string" && x.trim().length > 0;
}
function isNonNegativeInt(x) {
return Number.isInteger(x) && x >= 0;
}
function validateUser(u) {
if (u == null || typeof u !== "object") {
return { ok: false, reason: "not an object" };
}
if (!isNonEmptyString(u.name)) {
return { ok: false, reason: "name required" };
}
if (!isNonNegativeInt(u.age)) {
return { ok: false, reason: "age must be a non-negative integer" };
}
return { ok: true };
}
// Demo
const rawUser = "{\"name\":\"Mina\",\"age\":22}";
const parsed = safeParse(rawUser);
if (parsed.ok) {
console.log("valid?", validateUser(parsed.value));
}

Standardwerte für optionale Werte
Verwenden Sie ?? und einfache Prüfungen, um sichere Standardwerte für optionale Felder festzulegen.
// Apply defaults using nullish coalescing and spread
function normalizeUser(u) {
const theme = (u.theme ?? "light"); // default theme
const tags = Array.isArray(u.tags) ? u.tags : [];
return { ...u, theme: theme, tags: tags };
}
// Demo
const raw = "{\"name\":\"Lena\",\"age\":19}";
const p = safeParse(raw);
if (p.ok) {
const v = normalizeUser(p.value);
console.log("theme:", v.theme, "tags:", v.tags);
}

Bereiche und Begrenzungen
Begrenzen Sie numerische Bereiche und Array-Größen, damit Daten sicher und vorhersehbar bleiben.
// Guard numbers and arrays with tiny limits
function clampNumber(x, min, max) {
if (typeof x !== "number" || !Number.isFinite(x)) return min;
return Math.min(max, Math.max(min, x));
}
function toStringArray(a) {
if (!Array.isArray(a)) return [];
return a.map(function (x) { return String(x); }).slice(0, 5); // cap length
}
// Demo
const cfgText = "{\"limit\":200,\"labels\":[\"a\",\"b\",\"c\",\"d\",\"e\",\"f\"]}";
const cfg = safeParse(cfgText);
if (cfg.ok) {
const limit = clampNumber(cfg.value.limit, 1, 100);
const labels = toStringArray(cfg.value.labels);
console.log("limit:", limit, "labels:", labels);
}

Parsen → validieren → normalisieren
Pipeline: parse → validate → normalize. Halten Sie Funktionen klein und gut lesbar.
// Putting it together: parse → validate → normalize
function readUser(jsonText) {
const p = safeParse(jsonText);
if (!p.ok) return { ok: false, reason: "parse: " + p.error };
const check = validateUser(p.value);
if (!check.ok) return { ok: false, reason: "shape: " + check.reason };
const normalized = normalizeUser(p.value);
return { ok: true, value: normalized };
}
// Demo
const text = "{\"name\":\"Ayla\",\"age\":21,\"tags\":[\"new\"],\"theme\":\"dark\"}";
console.log(readUser(text));

Quiz zum sicheren Parsen
Kurztest: Sicheres Muster.

Zusammenfassung
Zusammenfassung: Erstellen Sie ein kleines safeParse, prüfen Sie erforderliche Felder und Typen, begrenzen Sie Zahlen und Arrays und wenden Sie Standardwerte an, damit Ihre App fehlerhafte Eingaben gelassen verarbeitet.

Häufig gestellte Fragen
Ist die Lektion „Strategien zum sicheren Parsen von JSON“ kostenlos?
Ja — der vollständige Text von „Strategien zum sicheren Parsen von JSON“ ist hier im Web kostenlos zu lesen. Um sie interaktiv zu üben (integrierter Code-Editor und 24/7 KI-Tutor) und den Rest des JavaScript Academy-Kurses freizuschalten, upgrade auf CoddyKit PRO. Der JavaScript Academy-Kurs umfasst insgesamt 3 Lektionen.
Was lerne ich in „Strategien zum sicheren Parsen von JSON“?
Nicht vertrauenswürdiges JSON mit try/catch, kleinen Strukturprüfungen, Standardwerten und kleinen Hilfsfunktionen sicher parsen Du übst JavaScript Academy mit praktischem Code, den du direkt im Browser ausführst, und ein 24/7 KI-Tutor beantwortet deine Fragen während du die Lektion bearbeitest.
Brauche ich Erfahrung, um JavaScript Academy zu starten?
Keine Vorkenntnisse erforderlich. JavaScript Academy auf CoddyKit ist für Anfänger bis fortgeschrittene Lernende strukturiert, sodass du hier starten oder von Anfang an beginnen und in deinem eigenen Tempo voranschreiten kannst. Dies ist Lektion 3 von 3.
Wie lange dauert die Lektion „Strategien zum sicheren Parsen von JSON“?
Die meisten CoddyKit-Lektionen dauern etwa 5–10 Minuten. Jede ist kompakt und interaktiv, sodass du stetig Fortschritte machst und genau dort weitermachst, wo du aufgehört hast – im Web und in der App.
Kann ich in dieser JavaScript Academy-Lektion Code schreiben und ausführen?
Ja. Jede JavaScript Academy-Lektion enthält einen integrierten Code-Editor, sodass du echten Code direkt in deinem Browser schreibst und ausführst und sofort KI-Feedback erhältst — ohne lokale Einrichtung erforderlich.
Alle Lektionen in diesem Kurs
- Grundlagen von JSON.parse / JSON.stringify
- Strukturiertes Klonen und URLSearchParams
- Strategien zum sicheren Parsen von JSON