Dieser Inhalt wurde automatisch aus dem Englischen übersetzt, und kann Fehler enthalten. Erfahre mehr über dieses Experiment.

View in English Always switch to English

Response: Methode json()

Baseline Widely available

This feature is well established and works across many devices and browser versions. It’s been available across browsers since ⁨März 2017⁩.

Hinweis: Diese Funktion ist in Web Workers verfügbar.

Die json()-Methode des Response-Interfaces nimmt einen Response-Stream und liest ihn vollständig aus. Sie gibt ein Promise zurück, das mit dem Ergebnis des Parsens des Textkörpers als JSON aufgelöst wird.

Beachten Sie, dass das Ergebnis trotz des Namens der Methode json() kein JSON ist, sondern das Ergebnis des Parsens der JSON-Eingabe, um ein JavaScript-Objekt zu erzeugen.

Syntax

js
json()

Parameter

Keine.

Rückgabewert

Ein Promise, das sich zu einem JavaScript-Objekt auflöst. Dieses Objekt kann alles sein, was durch JSON dargestellt werden kann – ein Objekt, ein Array, ein String, eine Zahl…

Ausnahmen

AbortError DOMException

Die Anfrage wurde abgebrochen.

TypeError

Wirft eine der folgenden Gründe:

SyntaxError

Der Antwortkörper kann nicht als JSON geparst werden.

Beispiele

In unserem fetch-JSON-Beispiel (ausführen fetch JSON live), erstellen wir eine neue Anfrage mit dem Request()-Konstruktor und verwenden es dann, um eine .json-Datei abzurufen. Wenn das Abrufen erfolgreich ist, lesen und parsen wir die Daten mit json(), lesen die Werte aus den resultierenden Objekten wie erwartet heraus und fügen sie in Listenelemente ein, um unsere Produktdaten anzuzeigen.

js
const myList = document.querySelector("ul");
const myRequest = new Request("products.json");

fetch(myRequest)
  .then((response) => response.json())
  .then((data) => {
    for (const product of data.products) {
      const listItem = document.createElement("li");
      listItem.appendChild(document.createElement("strong")).textContent =
        product.Name;
      listItem.append(` can be found in ${product.Location}. Cost: `);
      listItem.appendChild(document.createElement("strong")).textContent =
        `£${product.Price}`;
      myList.appendChild(listItem);
    }
  })
  .catch(console.error);

Spezifikationen

Specification
Fetch
# ref-for-dom-body-json①

Browser-Kompatibilität

Siehe auch