JSON Kurs Naechste Lektion

Lektion 03 - localStorage

JSON im Browser speichern und wieder laden

localStorage ist ein einfacher Speicher im Browser. Daten bleiben dort auch nach dem Neuladen der Seite erhalten. Fuer den Einstieg ist das perfekt, weil du Speicherung ohne Datenbank trainieren kannst.

1. Was ist localStorage?

localStorage speichert Werte als Text. Jeder Wert bekommt einen Schluessel. Spaeter kannst du mit diesem Schluessel den gespeicherten Text wieder laden. Wichtig: Weil nur Text gespeichert wird, muessen Objekte vorher mit JSON umgewandelt werden.

localStorage.setItem('username', 'Mina');

const username = localStorage.getItem('username');

console.log(username);

2. Objekt speichern

Ein Objekt wird mit JSON.stringify zu JSON-Text gemacht. Danach kann es in localStorage gespeichert werden.

const user = {
  name: 'Mina',
  points: 80,
  completedLessons: ['json-basics', 'objects-arrays'],
};

const jsonText = JSON.stringify(user);

localStorage.setItem('learningUser', jsonText);

3. Objekt wieder laden

Beim Laden bekommst du zuerst Text zurueck. Mit JSON.parse wird daraus wieder ein JavaScript-Objekt.

const savedText = localStorage.getItem('learningUser');

if (savedText !== null) {
  const user = JSON.parse(savedText);
  console.log(user.name);
  console.log(user.points);
}

Die Pruefung auf null ist wichtig. Wenn noch nichts gespeichert wurde, gibt localStorage.getItem naemlich null zurueck.

4. Daten aktualisieren

Wenn du gespeicherte Daten veraendern willst, arbeitest du in drei Schritten: laden, veraendern, erneut speichern.

const savedText = localStorage.getItem('learningUser');

if (savedText !== null) {
  const user = JSON.parse(savedText);

  user.points = user.points + 10;
  user.completedLessons.push('local-storage');

  localStorage.setItem('learningUser', JSON.stringify(user));
}

5. Daten loeschen

Manchmal soll ein Speicherstand entfernt werden. Dafuer gibt es removeItem. Mit clear wuerdest du alles im localStorage der Seite loeschen.

localStorage.removeItem('learningUser');

// Vorsicht: loescht alle localStorage-Daten dieser Website
localStorage.clear();

6. Mini-App: Lernfortschritt speichern

Dieses Beispiel speichert, welche Lektion zuletzt geoeffnet wurde. Beim naechsten Laden kann die App diese Information wieder anzeigen.

function saveProgress(lessonId) {
  const progress = {
    lastLesson: lessonId,
    updatedAt: new Date().toISOString(),
  };

  localStorage.setItem('progress', JSON.stringify(progress));
}

function loadProgress() {
  const savedText = localStorage.getItem('progress');

  if (savedText === null) {
    return null;
  }

  return JSON.parse(savedText);
}

saveProgress('json-storage');
console.log(loadProgress());

7. Uebungen

  1. Speichere einen Namen mit localStorage.setItem.
  2. Lade den Namen mit localStorage.getItem wieder.
  3. Speichere ein Profil-Objekt mit JSON.stringify.
  4. Lade das Profil mit JSON.parse wieder.
  5. Erhoehe gespeicherte Punkte um 5 und speichere erneut.
  6. Loesche den Speicherstand mit removeItem.
Weiter zu Dart JSON Models