JSON.parse()

Die Methode JSON.parse() erzeugt aus einem JSON-formatierten Text ein entsprechendes Javascript-Objekt. Der optionale reviver-Parameter kann die Umwandlung im Detail beeinflussen.

Syntax

JSON.parse(text[, reviver])

Parameter

text
JSON-formatierter Text, der eingelesen werden soll. Siehe JSON f├╝r eine Beschreibung der JavaScript Objekt Notation.
reviver Optional

Wenn es sich um eine Funktion handelt, schreibt diese vor, wie der urspr├╝nglich vom Parsen erzeugte Wert transformiert wird, bevor er zur├╝ckgegeben wird.

R├╝ckgabewert

Die Funktion gibt das aus text erzeugte Object zur├╝ck.

Ausnahmen

SyntaxError, falls text kein g├╝ltiges JSON enth├Ąlt.

Beispiele

JSON.parse() verwenden

JSON.parse('{}');              // {}
JSON.parse('true');            // true
JSON.parse('"foo"');           // "foo"
JSON.parse('[1, 5, "false"]'); // [1, 5, "false"]
JSON.parse('null');            // null

Verwendung des reviver-Parameters

Wenn reviver spezifiziert ist, wird der vom Parser berechnete Wert vor der R├╝ckgabe Transformiert. Insbesondere der berechnete Wert und alle seine EIgenschaften (beginnend mit dem am tiefsten geschachtelten Eigenschaft bis hin zum originalen Wert selbst) werden separat mit dem reviver Ausgef├╝hrt. Dann wird sie aufgerufen, wobei das Objekt, das die Eigenschaft enth├Ąlt, als this und der Eigenschaftsname als Zeichenfolge und der Eigenschaftswert als Argumente verarbeitet werden. Wenn reviver undefined zur├╝ck gibt (oder keinen Wert zur├╝ck gibt, wenn zum Beispiel die Ausf├╝hrung der Funktion fehlschl├Ągt), wird die Eigenschaft aus dem Ergebnis entfernt. Anderenfalls wird dessen Wert in den R├╝ckgabewert neu definiert.

Falls reviver nur einige Werte ├Ąndert, muss sichergestellt sein, dass die unver├Ąnderten Werte auch zur├╝ckgegeben werden, ansonsten werden diese Werte aus dem Ergebnis gel├Âscht.

JSON.parse('{"p": 5}', (key, value) =>
  typeof value === 'number'
    ? value * 2 // Gibt value * 2 f├╝r Zahlen zur├╝ck.
    : value     // Alle anderen Werte werden unver├Ąndert zur├╝ckgegeben.
);

// { p: 10 }

JSON.parse('{"1": 1, "2": 2, "3": {"4": 4, "5": {"6": 6}}}', (key, value) => {
  console.log(key); // Loggt die Namen der Eigenschaften, der letzte ist "".
  return value;     // Gib den unver├Ąnderten Eigenschaftenwert zur├╝ck.
});

// 1
// 2
// 4
// 6
// 5
// 3
// ""

JSON.parse() erlaubt keine abschlie├čenden Kommas

// Beides erzeugt einen Syntaxfehler
JSON.parse("[1, 2, 3, 4, ]");
JSON.parse("{ \"foo\" : 1, }");

Spezifikationen

Browserkompatibilit├Ąt

BCD tables only load in the browser

Siehe auch